Java JDBC
JDBC是一组专门负责连接操作数据库的标准。
常见的连接方式:JDBC-ODBC桥连接、JDBC连接。
一般JDBC比较常用,JDBC-ODBC性能比较差。
JDBC开发的四大步骤:
1、加载数据库驱动程序
2、连接数据库
3、操作数据库
4、关闭数据库连接
实例:
创建如下的表数据:
package java_jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JdbcTest { //定义连接数据库的参数常量 public static String DBDRIVER="com.mysql.jdbc.Driver"; public static String DBURL="jdbc:mysql://localhost:3306/db_jdbc"; public static String DBUSER="root"; public static String DBPASSWORD="mysqladmin"; public static void main(String[] args) throws Exception { Connection conn=null; Statement st=null; ResultSet rs=null; //1、加载驱动,这里使用的是mysql Class.forName(DBDRIVER); //2、连接数据库 conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); //3、实例化Statement完成操作 st=conn.createStatement(); System.out.println("*** 输出表中的初始数据 ***"); rs=st.executeQuery("select * from menber"); while(rs.next()){ System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address")); } System.out.println("*** 插入一个menber ***"); st.executeUpdate("insert into menber values(null,'王武','28','深圳')"); System.out.println("*** 修改张三的年龄 ***"); st.executeUpdate("update menber set age='22' where id=1"); System.out.println("*** 输出表中的最终数据 ***"); rs=st.executeQuery("select * from menber"); while(rs.next()){ System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address")); } //4、关闭连接 rs.close(); st.close(); conn.close(); } }
但是由于Statement存在注入漏洞,所以现在基本上不使用了,而是使用PreparedStatement
实例:
package java_jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class JdbcTest2 { //定义连接数据库的参数常量 public static String DBDRIVER="com.mysql.jdbc.Driver"; public static String DBURL="jdbc:mysql://localhost:3306/db_jdbc"; public static String DBUSER="root"; public static String DBPASSWORD="mysqladmin"; public static void main(String[] args) throws Exception { Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; //1、加载驱动,这里使用的是mysql Class.forName(DBDRIVER); //2、连接数据库 conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); //3、实例化Statement完成操作 ps=conn.prepareStatement("select * from menber where age>?"); ps.setInt(1, 25); rs=ps.executeQuery(); while(rs.next()){ System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address")); } //4、关闭连接 rs.close(); ps.close(); conn.close(); } }