Java基础 JDBC操作数据库
2017-12-13 08:22
363 查看
JDBC
java DataBase Connectivity
java 数据库连接
由一些接口和类构成的API ,这些接口和类主要在java sql,javax sql包中
JDBC操作数据库
JDBC操作数据库的步骤
加载数据库驱动
建立数据库连接对象
创建执行SQL的语句对象
执行SQL语句
处理结果
释放数据库资源
数据库厂商会实现符合自己数据库特点的数据库驱动程序。
常见数据库产品驱动加载方式
Mysql
Class.forName("com.mysql.jdbc.Driver");
Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");
SQLServer 2008
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
建立数据库连接的方式
C
c5be
onnection conn = DriverManager.getConnection(url,user,password);
String类型的url参数用于指定与哪一台服务器上的哪一个数据库建立连接
URL的格式是:主协议:子协议://主机名:端口号/数据库名
如:jdbc:mysql://localhost:3306/test
String类型的user参数用于指定数据库连接的用户名
String类型的password参数用于指定数据库连接的密码
Statement对象
Statement stmt = conn.createStatement();
PreparedStatement对象
String sql = “select * from students where name = ? and sex = ?”;
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1,”张三”);
ps.setString(2,”女”);
Statement类型语句对象的执行
boolean b = stmt.execute(sql);//执行任何sql语句
int I = stmt.executeUpdate(sql);//执行增删改SQL语句
ResultSet rs = stmt.executeQuery(sql);//执行查询语句
PreparedStatement类型语句对象的执行
boolean b = ps.execute();//执行任何类型sql语句
int I = ps.executeUpdate();//执行增删改类型sql语句
ResultSet rs = ps.executeQuery();//执行查询语句
处理执行结果
Statement对象或者PreparedStatement对象调用executeXxx()方法将SQL语句发送到数据库管理系统,数据库管理系统执行完毕之后会有结果返回,不同类型的sql语句以及不同的executeXxx()方法返回的结果都不相同,那么对结果的处理方式也不各不相同。
释放数据库资源
调用.close方法释放资源
释放ResultSet,Statement,Connection
Connection的使用原则是尽量晚创建,尽可能早释放,因为数据库的连接很有限,如果不及时释放将导致系统崩溃
应用对象 4种
强:
就算这个对象用过了,也不会释放 (常用)
软: 在垃圾检测的内存不足的时候会被释放 (不常用)
弱: 在垃圾检测的内存不足的时候不管有没有引用都会被释放 (偶尔)
虚: 检测到就释放掉 (偶尔)
java DataBase Connectivity
java 数据库连接
由一些接口和类构成的API ,这些接口和类主要在java sql,javax sql包中
JDBC操作数据库
JDBC操作数据库的步骤
加载数据库驱动
建立数据库连接对象
创建执行SQL的语句对象
执行SQL语句
处理结果
释放数据库资源
数据库厂商会实现符合自己数据库特点的数据库驱动程序。
常见数据库产品驱动加载方式
Mysql
Class.forName("com.mysql.jdbc.Driver");
Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");
SQLServer 2008
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
建立数据库连接的方式
C
c5be
onnection conn = DriverManager.getConnection(url,user,password);
String类型的url参数用于指定与哪一台服务器上的哪一个数据库建立连接
URL的格式是:主协议:子协议://主机名:端口号/数据库名
如:jdbc:mysql://localhost:3306/test
String类型的user参数用于指定数据库连接的用户名
String类型的password参数用于指定数据库连接的密码
Statement对象
Statement stmt = conn.createStatement();
PreparedStatement对象
String sql = “select * from students where name = ? and sex = ?”;
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1,”张三”);
ps.setString(2,”女”);
Statement类型语句对象的执行
boolean b = stmt.execute(sql);//执行任何sql语句
int I = stmt.executeUpdate(sql);//执行增删改SQL语句
ResultSet rs = stmt.executeQuery(sql);//执行查询语句
PreparedStatement类型语句对象的执行
boolean b = ps.execute();//执行任何类型sql语句
int I = ps.executeUpdate();//执行增删改类型sql语句
ResultSet rs = ps.executeQuery();//执行查询语句
处理执行结果
Statement对象或者PreparedStatement对象调用executeXxx()方法将SQL语句发送到数据库管理系统,数据库管理系统执行完毕之后会有结果返回,不同类型的sql语句以及不同的executeXxx()方法返回的结果都不相同,那么对结果的处理方式也不各不相同。
释放数据库资源
调用.close方法释放资源
释放ResultSet,Statement,Connection
Connection的使用原则是尽量晚创建,尽可能早释放,因为数据库的连接很有限,如果不及时释放将导致系统崩溃
应用对象 4种
强:
就算这个对象用过了,也不会释放 (常用)
软: 在垃圾检测的内存不足的时候会被释放 (不常用)
弱: 在垃圾检测的内存不足的时候不管有没有引用都会被释放 (偶尔)
虚: 检测到就释放掉 (偶尔)
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ChaJDBC { // 创建一个加载MySQL的驱动路径 private static String DBNAME = "com.mysql.jdbc.Driver"; // 创建一个数据库的路劲 private static String DBURL = "jdbc:mysql://127.0.0.1:3306/company"; // 数据库的账户名 private static String DBUSER = "root"; // 数据库的密码 private static String DBPASS = "zhang123"; { try { // 用静态代码块加载数据库驱动 Class.forName(DBNAME); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { try { // DriverManager 驱动器管理 获取一个执行sql语句的对象Connection Connection c = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 获取一个执行静态sql语句的对象Statement Statement s = c.createStatement(); //查询语句 返回一个ResultSet 查询结果集 ResultSet r= s.executeQuery("select*from emp;"); //用whlie 循环 导出内容 while (r.next()) { //取int类型的数据getIn getString取字符串的 getDate取时间的 System.out.println(r.getInt("empno")+ "\t"+ r.getString("ename")+ "\t" +r.getDate("hiredate")); } //first 判断有没有第一句 if(r.first()) { System.out.println(r.getString("ename")); } //关闭集 释放内存 r.close(); //关闭sql执行语句对象 释放内存 s.close(); //关闭 数据库链接 释放内存 c.close(); } catch (SQLException e) { e.printStackTrace(); }
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC { //创建一个加载MySQL的驱动路径 private static String DBNAME="com.mysql.jdbc.Driver"; //创建一个数据库的路劲 private static String DBURL="jdbc:mysql://127.0.0.1:3306/test"; //数据库的账户名 private static String DBUSER="root"; //数据库的密码 private static String DBPASS="zhang123"; { try { //用静态代码块加载数据库驱动 Class.forName(DBNAME); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { try { //DriverManager 驱动器管理 获取一个执行sql语句的对象Connection Connection c=DriverManager.getConnection(DBURL, DBUSER, DBPASS); //获取一个执行静态sql语句的对象Statement Statement s=c.createStatement(); //执行sql语句 s.execute("create table te(id int primary key auto_increment,tname varchar(10));"); //executeUpdate执行增删改 sql语句 s.executeUpdate("insert into te(tname) values('哈哈');"); s.executeUpdate("insert into te(tname) values('呵呵');"); //修改 字段 s.executeUpdate("alter table te change tname ttname char(6);"); //删除 某个内容 s.executeUpdate("delete from te where ttname='呵呵';"); //修改内容 s.executeUpdate("update te set ttname='hehe' where id=3;"); } catch (SQLException e) { e.printStackTrace(); } } }
相关文章推荐
- java基础---->jdbc数据库操作
- Java中操作数据库语句JDBC基础
- java基础---->jdbc数据库操作
- 【java基础:JDBC】采用DBUtils工具集进行数据库的增删改操作的demostration
- java基础---->jdbc数据库操作
- java 链接数据库sql jdbc 基础操作 增删改查
- java学习数据库操作基础更规范的写法——————调用类
- [零基础学JAVA]Java SE应用部分-33.Java数据库编程(JDBC)之一 推荐
- java对数据库的操作(jdbc)
- Java操作数据库编程基础
- java之 jdbc连接数据库与操作excel文件代码
- Java数据库接口JDBC入门基础讲座
- 对于java初学者容易犯错误的地方,jdbc操作数据库
- JDBC基础教程之CallableStatement(怎样操作用java程序操作oracle的过程)
- java基础视频下载(三) jdbc_java连接数据库[天一时代
- JAVA jdbc方式直接操作数据库
- java操作数据库的演进jdbc-datasource-hibernate-spring
- 编写操作数据库的JAVA程序时需要的连接MySQL数据库的JDBC连接包mysql-connector-java-5.1.10.zip怎么安装
- java学习数据库操作基础更规范的写法——————工具类
- java数据库操作基础