JDBC 开发:2018-05-21
作用:用Java语句向数据库发送请求并操作数据库。
简介:
练习:
数据库创建代码:
create database day14;
use day14 ;
create table users(
id int primary key,
name varchar(40),
password varchar(40),
email varchar(60),
birthday date
);
insert into users(id,name,password,email,birthday) values(1,'zs','123456','zs@sina.com','1980-12-04');
insert into users(id,name,password,email,birthday) values(2,'lisi','123456','lisi@sina.com','1981-12-04');
insert into users(id,name,password,email,birthday) values(3,'wangwu','123456','wangwu@sina.com','1979-12-04');
在程序中进行获取数据库的数据代码如下:
1 package day14;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9
10 public class Demo1 {
11 /*
12 create database day14;
13 use day14 ;
14 create table users(
15
16 id int primary key,
17 name varchar(40),
18 password varchar(40),
19 email varchar(60),
20 birthday date
21 );
22 insert into users(id,name,password,email,birthday) values(1,'zs','123456','zs@sina.com','1980-12-04');
23 insert into users(id,name,password,email,birthday) values(2,'lisi','123456','lisi@sina.com','1981-12-04');
24 insert into users(id,name,password,email,birthday) values(3,'wangwu','123456','wangwu@sina.com','1979-12-04');
25 */
26
27 public static void main(String[] args) throws SQLException {
28 String url="jdbc:mysql://localhost:3306/day14";
29 String username="root";
30 String password="999909";
31
32
33 //1.加载驱动
34 DriverManager.registerDriver( new com.mysql.jdbc.Driver());
35
36 //2.获得数据库链接
37 Connection conn = DriverManager.getConnection(url, username, password);
38
39 //3.获取向数据库发数据的statament对象,
40
41 Statement st= conn.createStatement();
42 //4.向数据库发送sql,获取数据库返回的结果集
43
44
45 ResultSet rs=st.executeQuery("select * from users");
46 //5.从结果集中获取数据,
47 while (rs.next()){
48 System.out.println("id:"+rs.getObject("id"));
49 System.out.println("name:"+rs.getObject("name"));
50 System.out.println("password:"+ rs.getObject("password"));
51 System.out.println("email:" +rs.getObject("email"));
52 System.out.println("birthday:"+rs.getObject("birthday"));
53 }
54
55
56 //6.释放资源(释放链接)释放的结果与创建的顺序相反。
57 rs.close();
58 st.close();
59 conn.close();
60
61 }
62
63 }
JDBC过程详解:
解决drivemanager的方法:
加载驱动的方法:classForname("com.mysql.jdbc.Driver");
来直接加载类,加载类时可以直接创建新的驱动。
小注:当加载类驱动时,需要利用配置文件来实现数据库驱动的加载,其中两种常用的方法为:
1. 若配置的数据有关系就利用xml文件来加载加载驱动。
2.若配置的数据没有关系就利用properties来加载驱动。
数据库URL:
程序详解:connection:
statement:程序详解:
常用的数据类型转换表:
程序详解:链接释放
程序详解--释放资源:
使用JDBC对数据库进行CRUD:
联系代码如下:
1 package day14;
2
3
4 import java.sql.Connection;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 import org.junit.Test;
10
11 import cn.itcast.utils.JdbcUtils;
12
13
14 public class Demo2 {
15
16
17
18 @Test
19 public void insert() throws SQLException{
20
21 Connection conn=null;
22 Statement st=null;
23 ResultSet rs=null;
24 System.out.println("1");
25
26 try{
27 conn = JdbcUtils.getconnection();
28 System.out.println("2");
29
30 st= conn.createStatement();
31 String sql="insert into users(id,name,password,email,birthday) values(4,'eee','123','ee@sina.com','1998-09-09')";
32 System.out.println("3");
33 int num= st.executeUpdate(sql);
34
35 if(num>0){
36 System.out.println("插入成功");
37 }
38 }finally{
39 JdbcUtils.relesase(conn, st, rs);
40
41 }
42
43 }
44
45
46 @Test
47 public void update() throws SQLException{
48 Connection conn=null;
49 Statement st=null;
50 ResultSet rs=null;
51 try{
52 conn = JdbcUtils.getconnection();
53 st=conn.createStatement();
54 String sql="update users set name='fff' where id='4'";
55 int num=st.executeUpdate(sql);
56 if(num>0){
57 System.out.println("更新成功!!");
58
59 }
60
61
62 }finally{
63 JdbcUtils.relesase(conn, st, rs);
64
65 }
66
67 }
68
69 @Test
70 public void delete() throws SQLException{
71 Connection conn=null;
72 Statement st=null;
73 ResultSet rs=null;
74 try{
75 conn = JdbcUtils.getconnection();
76 st=conn.createStatement();
77 String sql="delete from users where id='4'";
78 int num=st.executeUpdate(sql);
79 if(num>0){
80 System.out.println("删除成功!!");
81
82 }
83
84 }finally{
85 JdbcUtils.relesase(conn, st, rs);
86
87 }
88
89 }
90 @Test
91 public void find() throws SQLException{
92 Connection conn=null;
93 Statement st=null;
94 ResultSet rs=null;
95 try{
96 conn = JdbcUtils.getconnection();
97 st=conn.createStatement();
98 String sql="select * from users";
99 rs=st.executeQuery(sql);
100 while (rs.next()){
101 System.out.println("id:"+rs.getObject("id"));
102 System.out.println("name:"+rs.getObject("name"));
103 System.out.println("password:"+ rs.getObject("password"));
104 System.out.println("email:" +rs.getObject("email"));
105 System.out.println("birthday:"+rs.getObject("birthday"));
106 }
107
108 }finally{
109 JdbcUtils.relesase(conn, st, rs);
110
111 }
112
113 }
114 @Test
115 public void getAll() throws SQLException{
116 Connection conn=null;
117 Statement st=null;
118 ResultSet rs=null;
119 try{
120 conn = JdbcUtils.getconnection();
121 st=conn.createStatement();
122 String sql="select id,name,password,email,birthday from users";
123 rs=st.executeQuery(sql);
124 while (rs.next()){
125 System.out.println("id:"+rs.getObject("id"));
126 System.out.println("name:"+rs.getObject("name"));
127 System.out.println("password:"+ rs.getObject("password"));
128 System.out.println("email:" +rs.getObject("email"));
129 System.out.println("birthday:"+rs.getObject("birthday"));
130 }
131
132 }finally{
133 JdbcUtils.relesase(conn, st, rs);
134
135 }
136
137 }
138 }
工厂设计模式: