发表于: 2018-01-07 23:53:39
2 670
完成
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;
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建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,知道如何去解决,一步一步找到问题所在。
评论