您的位置:首页 > 数据库

jdbc操作数据库

2016-07-05 21:36 162 查看
[align=left]Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接,[/align]
[align=left]这个API的常用方法:[/align]
[align=left] DriverManager.registerDriver(new Driver());[/align]
[align=left] DriverManager.getConnection(url,user,password);[/align]
[align=left]注意:在实际开发中并不推荐采用registerDriver方法注册驱动,原因有二:[/align]
[align=left]1.查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。[/align]
[align=left]2.程序依赖Mysql的api,脱离mysql的jar包,程序将无法编译,将来程序切换底层数据库将会非常麻烦。[/align]
[align=left] 推荐方式:Class.forName("com.mysql.jdbc.Driver");[/align]
[align=left] 采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅需要一个字符串峭需要依赖具体的驱动,使程序的灵活性更高。[/align]
[align=left][/align]
[align=left]URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为: jdbc:mysql:// localhost:3306/test ?key=value[/align]
[align=left][/align]
[align=left][/align]
[align=left]常用数据库URL地址的写法: Oracle写法:[/align]
[align=left]mysql url: jdbc:mysql://localhost:3306/数据库名[/align]
[align=left]oracle url: jdbc:oracle:thin:@localhost:1521:sid[/align]
[align=left][/align]
[align=left]jdbc:oracle:thin:@localhost:1521:sid[/align]
[align=left]MySql—jdbc:mysql://localhost:3306/sid[/align]
[align=left]Mysql的url地址的简写形式: jdbc:mysql:///sid[/align]
[align=left]常用属性:useUnicode=true&characterEncoding=UTF-8[/align]
[align=left][/align]
[align=left][/align]
[align=left] // 注册驱动[/align]
[align=left] 第一种:DriverManager.registerDriver(new Driver());[/align]
[align=left] 第二种 :Class.forName("com.mysql.jdbc.Driver");[/align]
[align=left]使用第一种时,在com.mysql.jdbc.Driver类中有一段静态代码块:[/align]
[align=left][/align]
[align=left]sttic {[/align]
[align=left]try {[/align]
[align=left]java.sql.DriverManager.registerDriver(new Driver());[/align]
[align=left]}[/align]
[align=left]catch(SQLException ex){[/align]
[align=left]throw new RuntimeException("Can't register driver");[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left][/align]
[align=left]上述代码的问题:[/align]
[align=left] 1,在驱动管理器中会装入两个mysql驱动。解决方案:使用反射[/align]
[align=left] Class.forName("com.mysql.jdbc.Driver");[/align]
[align=left]分析:使用反射的方式来加载驱动有什么好处?[/align]
[align=left]a.只加载一次,装入一个驱动对象,[/align]
[align=left]b.降低耦合,不依赖于驱动。[/align]
[align=left][/align]
[align=left][/align]
[align=left]importjava.sql.Connection;[/align]
[align=left]import java.sql.DriverManager;[/align]
[align=left]import java.sql.SQLException;[/align]
[align=left]import java.sql.Statement;[/align]
[align=left] [/align]
[align=left]import org.gjt.mm.mysql.Driver;[/align]

// 注册驱动
DriverManager.registerDriver(new Driver());

// 连接测试
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb1", "root", "root");
// 通过连接对象 创建操作sql语句对象 Statement
Statement st = conn.createStatement();
// 操作的sql语句
String t_sql = "select * from employee";
// 执行sql 返回 查询结果集 ResultSet;
java.sql.ResultSet rs = st.executeQuery(t_sql);

// 遍历结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
System.out.println("流水编号:" + id + ", 姓名:" + name + " ,职位:" + gender
+ ";");
}

[align=left] // 释放资源[/align]
[align=left] rs.close();[/align]
[align=left] st.close();[/align]
[align=left] conn.close();[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: