发表于: 2018-01-07 23:53:39

2 672


完成

1.再次写了JDBC连接mySQL数据库

这次参考了篇博客https://www.2cto.com/kf/201608/539760.html

以下是实现代码

package util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBhelper {


private static final  String Url = "jdbc:mysql://localhost:3306/baomingtie?"
         +"user=root&password=1234&useUnicoe=true&characterEncoding=UTF8";


   //mysql数据库驱动,固定写法。连接Oracle时又与之不同,为:"oracle.jdbc.driver.OracleDriver"
   private static final String driver = "com.mysql.jdbc.Driver";
   /**
    * 如下是连接数据库的URL地址,
    * 其中,"jdbc:mysql://"   为固定写法
    * "localhost"是连接本机数据库时的写法,当不是连接本机数据库时,要写数据库所在计算机的IP地址。如:172.26.132.253
    * "shopping"是数据库的名称,一定要根据自己的数据库更改。
    * "?useUnicode=true&characterEncoding=UTF-8" 指定编码格式,无需时可省略,
    * 即地址直接为:"jdbc:mysql://localhost:3306/shopping"
    */
   //private static final String Url = "jdbc:mysql;//localhost:3306/baomingtie?useUnicoe=true&characterEncoding=UTF8";
   //private static final String user = "root";//数据库的用户名
   //private static final String password = "1234";//数据库的密码:这个是自己安装数据库的时候设置的,每个人不同。

   private static Connection conn = null;//声明数据库连接对象
   //静态代码块负责加载驱动
   static{
try{
Class.forName(driver);
       }
catch(Exception ex){
ex.printStackTrace();
       }
}
//单例模式返回数据库连接对象,供外部调用
   public static Connection getConnection() throws Exception {
if(conn == null){
conn = DriverManager.getConnection(Url);
         //  conn = DriverManager.getConnection(url,username,password);
           return conn;
       }
return conn;
   }
//main方法测试是否连接成功,可将本类运行为Java程序先进行测试,再做后续的数据库操作。
   public static void main(String[] args) {
try {
getConnection();
           System.out.println("11");
       } catch (Exception e) {
e.printStackTrace();
       }
try {
Connection conn = DBhelper.getConnection();
           if (conn != null) {
System.out.println("数据库连接正常!");
           } else {
System.out.println("数据库连接异常!");
           }
} catch (Exception ex) {
ex.printStackTrace();
       }
}
}

结果是

这里最好将改为

这样做看起来更清晰明了。

2.昨天的代码也进行了重写如下:

package cn.hba.test;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;

public class hello{

public static void main(String[] args) throws Exception{
Connection conn = null;
       String sql;
       // MySQLJDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=
       // 避免中文乱码要指定useUnicodecharacterEncoding
       // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
       // 下面语句之前就要先创建baomingtie数据库
       String url = "jdbc:mysql://localhost:3306/baomingtie?"
               +"user=root&password=1234&useUnicoe=true&characterEncoding=UTF8";

       try{
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
           // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
           Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
           // or:
           // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
           // or
           // new com.mysql.jdbc.Driver();
           System.out.println("成功加载Mysql驱动程序");
           // 一个Connection代表一个数据库连接
           conn = DriverManager.getConnection(url);
           // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
           Statement stmt = conn.createStatement();
           sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
           int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
           if(result != -1){
System.out.println("创建数据表成功");
               sql = "insert into student(NO,name) values('2012001','陶伟基')";
               result = stmt.executeUpdate(sql);
               sql = "insert into student(NO,name) values('2012002','周小俊')";
               result = stmt.executeUpdate(sql);
               sql = "select * from student";
               ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
               System.out.println("学号\t姓名");
               while (rs.next()) {
System.out
                           .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
               }
}
}catch (SQLException e){
System.out.println("MySQL操作错误");
           e.printStackTrace();
       }catch (Exception e){
e.printStackTrace();
       }finally{
conn.close();
       }
}

}

结果终于成功:

昨天出错的问题除了语法拼写上的错误,主要在于这句话

这里要求新建一个数据表student,但之前这个表一直是存在的,导致了数据库连接不成功。

3.今天还配置了idea的工作环境,在博客园,CSDN上建立了账号,收藏精品的博客供以后阅读。

4.初步学习了mybatis。


计划

明天要把这两天的知识吸收一下,完成mybatis部分。


问题

剩下的问题集中在概念和框架的理解上,明天继续理解。


收获

很享受线下的学习氛围,各位师兄都很热心帮忙解答问题,今天要感谢李师兄和高师兄的指导,面对bug,知道如何去解决,一步一步找到问题所在。




返回列表 返回列表
评论

    分享到