jdbc和Hibernate (oracle和mySql)连接数据库 代码步骤
2017-05-07 14:53
741 查看
jdbc 连接数据库 :
1 连接数据库
第一步 先获得数据库驱动
Class.forName("oracle.jdbc.OracleDrive"); //oracle的连接驱动
Class.forName("com.mysql.jdbc.Driver"); //mySql 的连接驱动
第二步: 获得数据库连接对象
String url = "jdbc:oracle:thin:@localhost:1521:xe"; //oracle
String url = "jdbc:mysql://localhost:3306/库名 //mySql
String userName="root";
String passWord = "root";
Connection conn = DriverManager.getConnnection(url,userName,passWord);
第三步 获得 Statement对象 并且执行Sql 语句
Statement sts = conn.createStatement();
ResultSet rs = sts.executeQuery("select date,id from stu");
//迭代查询
while(rs.next()){
System.out.ptintln(rs.getDate(1));
[b] System.out.ptintln(rs.getInt(2));
[/b]
..........................................................;
}
conn.setAutoCommit(false);//默认是自动提交
第四步 关闭数据库连接
关闭结果集
if(rs!=null){
[b]
[/b]
rs.close();
}
关闭声明
if([b]sts!=null){[/b]
try{
sts.close();
} cath([b]
[b]
[/b]
}
}
if(conn!=null){
try{
conn.close();
}cath{[/b]
[b] [b]
[/b]
}
}
[b]Statement
和PreparedStatement 区别两个接口的区别
[/b]
[b][b]Statement
[/b]是PreparedStatement的父类
[/b]
[b] SQL 语句被预编译并存储在
[/b]
[b]
[b][b][b]Statement[/b][/b] 不支持预编译 而[b]PreparedStatement[/b]
支持这就导致了[b]PreparedStatement[/b]的效率比前者高,可读性也好[/b][/b]
[b]例如:[b][b][b][b]PreparedStatement[/b]
[/b][/b]可以使用占位符? [/b]
[/b]
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592);
[b][b] ResultSet rs =
[b]pstmt.executeUpdate();[/b][/b][/b]
如果 [b][b]Statement
[/b]中sql 条件过会导致语句长并且不便于读写,严重影响开发效率,也容易将sql语句写错从而造成严重影响
[/b]
[b]Statement sts = conn.createStatement(); sql 主要是靠拼接 容易出问题
[/b]
ResultSet rs = sts.executeQuery("select date,id from stu");
两者总结:
如果单纯的只有一个简单的查询可以选择用[b][b]Statement
[/b],前提是你对sql熟练不易写错,因为PreparedStatement
比[b]Statement
[/b]的开销大小。但是如果你需要进行复杂而且重复量极高的sql语句,那最好是选择[b]PreparedStatement[/b],因为它的预编译能力是 前者所没有的,这样大大提高了执行的效率,尤其是在批量删除,更新,插入时,效果越加明显,并且也不会因为sql拼接的原因出问题
批量处理 addBath().[/b]
强力推荐使用
[b][b]PreparedStatement[/b]!!!
[/b]
Hibernate 连接数据库
1 读取配置文件
[b]hibernate.cfg.xml文件 设置Hibernate 配置信息
[/b]
Configuration config = new Configuration().getConfig();
2 读取映射文件 具体类的xml 注意文件路径
config.addFile("xxx/xxx.xml");
3. 获得Session工厂
SessionFactory factory = config.buildSessionFactory();
4. 获得session
Session
[b]session =factory.openSession();
[/b]
5. 开启事务
Transaction tran=session.beginTransaction();
tran.begin();//这里开启了事务
[b][b] session.save(stu);[/b][/b]
[b][b] 6. 提交事务
[/b][/b]
[b][b] tran.commit();[/b]
[/b]
7. 关闭 会话
session.close();
1 连接数据库
第一步 先获得数据库驱动
Class.forName("oracle.jdbc.OracleDrive"); //oracle的连接驱动
Class.forName("com.mysql.jdbc.Driver"); //mySql 的连接驱动
第二步: 获得数据库连接对象
String url = "jdbc:oracle:thin:@localhost:1521:xe"; //oracle
String url = "jdbc:mysql://localhost:3306/库名 //mySql
String userName="root";
String passWord = "root";
Connection conn = DriverManager.getConnnection(url,userName,passWord);
第三步 获得 Statement对象 并且执行Sql 语句
Statement sts = conn.createStatement();
ResultSet rs = sts.executeQuery("select date,id from stu");
//迭代查询
while(rs.next()){
System.out.ptintln(rs.getDate(1));
[b] System.out.ptintln(rs.getInt(2));
[/b]
..........................................................;
}
conn.setAutoCommit(false);//默认是自动提交
第四步 关闭数据库连接
关闭结果集
if(rs!=null){
[b]
try
{
[/b]
rs.close();
}
关闭声明
if([b]sts!=null){[/b]
try{
sts.close();
} cath([b]
SQLException e){[/b]
[b]
e.printStackTrace();
[/b]
}
}
if(conn!=null){
try{
conn.close();
}cath{[/b]
[b] [b]
e.printStackTrace();[/b]
[/b]
}
}
[b]Statement
和PreparedStatement 区别两个接口的区别
[/b]
[b][b]Statement
[/b]是PreparedStatement的父类
[/b]
[b] SQL 语句被预编译并存储在
PreparedStatement对象中
[/b]
[b]
[b][b][b]Statement[/b][/b] 不支持预编译 而[b]PreparedStatement[/b]
支持这就导致了[b]PreparedStatement[/b]的效率比前者高,可读性也好[/b][/b]
[b]例如:[b][b][b][b]PreparedStatement[/b]
[/b][/b]可以使用占位符? [/b]
[/b]
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592);
[b][b] ResultSet rs =
[b]pstmt.executeUpdate();[/b][/b][/b]
如果 [b][b]Statement
[/b]中sql 条件过会导致语句长并且不便于读写,严重影响开发效率,也容易将sql语句写错从而造成严重影响
[/b]
[b]Statement sts = conn.createStatement(); sql 主要是靠拼接 容易出问题
[/b]
ResultSet rs = sts.executeQuery("select date,id from stu");
两者总结:
如果单纯的只有一个简单的查询可以选择用[b][b]Statement
[/b],前提是你对sql熟练不易写错,因为PreparedStatement
比[b]Statement
[/b]的开销大小。但是如果你需要进行复杂而且重复量极高的sql语句,那最好是选择[b]PreparedStatement[/b],因为它的预编译能力是 前者所没有的,这样大大提高了执行的效率,尤其是在批量删除,更新,插入时,效果越加明显,并且也不会因为sql拼接的原因出问题
批量处理 addBath().[/b]
强力推荐使用
[b][b]PreparedStatement[/b]!!!
[/b]
Hibernate 连接数据库
1 读取配置文件
[b]hibernate.cfg.xml文件 设置Hibernate 配置信息
[/b]
Configuration config = new Configuration().getConfig();
2 读取映射文件 具体类的xml 注意文件路径
config.addFile("xxx/xxx.xml");
3. 获得Session工厂
SessionFactory factory = config.buildSessionFactory();
4. 获得session
Session
[b]session =factory.openSession();
[/b]
5. 开启事务
Transaction tran=session.beginTransaction();
tran.begin();//这里开启了事务
[b][b] session.save(stu);[/b][/b]
[b][b] 6. 提交事务
[/b][/b]
[b][b] tran.commit();[/b]
[/b]
7. 关闭 会话
session.close();
相关文章推荐
- Oracle/Mysql之JDBC连接数据库七大步骤(结合代码理解)
- jdbc连接数据库步骤(mysql、oracle、sqlserver2008)
- JDBC 连接mysql, oracle, sqlservice数据库操作步骤
- jdbc连接不同的数据库(oracle、sqlserver、mysql)的步骤
- jdbc连接数据库步骤(mysql、oracle、sqlserver2008)
- 完整java开发中JDBC连接mysql或者其他数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤 【博客园】
- Java 直接用jdbc连接数据库 sql2000 的步骤和验证代码
- Java开发中JDBC连接数据库代码和步骤.
- mysql连接数据库的三种方法(连接池,jdbc,Hibernate)
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- JDBC 连接数据库实例(Oracle\SQLServer\MySQL 驱动下载)