java jdbc连接mysql数据库实现增删改查操作

àì夳堔傛蜴生んèń 2022-07-15 13:57 330阅读 0赞

这篇文章主要为大家详细介绍了java jdbc连接mysql数据库实现增删改查操作,需要的朋友可以参考下

jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate、Mybatis。

但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查的。

回归正题,先来看看我们的开发环境:

Java语言、Eclipse开发工具、Mysql数据库、Navicat数据库可视化工具。

开发环境的安装搭建及使用请自己查阅资料(很简单的),这里不详细阐述。

第一步,创建数据库,利用Navicat数据库可视化工具随便建立一个数据库,在库中建立一张表,表里给几个字段(记得给个id字段,唯一主键,自增序列),再随便给上两条数据便好,用来测试功能,如图:

2016071010554234.jpg

第二步,打通数据库(这个例子希望大家自己动手敲敲,耽误不了多少时间,熟悉一下jdbc如何和数据库打交道,故以图示之),如图:

2016071010554235.jpg

第三步,改造DBUtil类,方便在dao层获得数据库的连接,代码如下:

?










1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39



package
com.czgo.db;


 


 


import
java.sql.Connection;


import
java.sql.DriverManager;


import
java.sql.SQLException;


 


public
class
DBUtil


{


  
private
static
final
String URL =
“jdbc:mysql://127.0.0.1:3306/imooc
;


  
private
static
final
String UNAME =
“root”
;


  
private
static
final
String PWD =
“root”
;


 


  
private
static
Connection conn =
null
;


 


  
static


  
{


    
try


    
{


      
// 1.加载驱动程序


      
Class.forName(
“com.mysql.jdbc.Driver”
);


      
// 2.获得数据库的连接


      
conn = DriverManager.getConnection(URL, UNAME, PWD);


    
}


    
catch
(ClassNotFoundException e)


    
{


      
e.printStackTrace();


    
}


    
catch
(SQLException e)


    
{


      
e.printStackTrace();


    
}


  
}


 


  
public
static
Connection getConnection()


  
{


    
return
conn;


  
}


}

第四步,创建实体类(如上图,大家观察包的分配,我们将采用MVC思想设计本实例,有关于mvc的设计思想,请大家自行学习,这里不多说)代码如下:

?










1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


51


52


53


54


55


56


57


58


59


60


61


62


63


64


65


66


67


68


69


70


71


72


73


74


75


76


77


78


79


80


81


82


83


84


85



package
com.czgo.model;


 


import
java.io.Serializable;


 


/


 
实体类:女神类


 



 
@author AlanLee


 



 
*/


public
class
Goddess
implements
Serializable
{


  
private
static
final
long
serialVersionUID = 1L;


 


  
/



   
唯一主键


   
/


  
private
Integer id;


  
/


   
姓名


   
/


  
private
String name;


  
/



   
手机号码


   
/


  
private
String mobie;


  
/


   
电子邮件


   
/


  
private
String email;


  
/



   
家庭住址


   
/


  
private
String address;


 


  
public
Integer getId()


  
{


    
return
id;


  
}


 


  
public
void
setId(Integer id)


  
{


    
this
.id = id;


  
}


 


  
public
String getName()


  
{


    
return
name;


  
}


 


  
public
void
setName(String name)


  
{


    
this
.name = name;


  
}


 


  
public
String getMobie()


  
{


    
return
mobie;


  
}


 


  
public
void
setMobie(String mobie)


  
{


    
this
.mobie = mobie;


  
}


 


  
public
String getEmail()


  
{


    
return
email;


  
}


 


  
public
void
setEmail(String email)


  
{


    
this
.email = email;


  
}


 


  
public
String getAddress()


  
{


    
return
address;


  
}


 


  
public
void
setAddress(String address)


  
{


    
this
.address = address;


  
}


}

第五步,dao层的实现(这里由于是小例子没有写dao接口,实际工作中大型项目应该是要写dao接口的,便于程序的维护和扩展),代码如下:

?










1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


51


52


53


54


55


56


57


58


59


60


61


62


63


64


65


66


67


68


69


70


71


72


73


74


75


76


77


78


79


80


81


82


83


84


85


86


87


88


89


90


91


92


93


94


95


96


97


98


99


100


101


102


103


104


105


106


107


108


109


110


111


112


113


114


115


116


117


118


119


120


121


122


123


124


125


126


127


128


129


130


131


132


133


134


135


136


137


138


139


140


141


142


143


144


145


146


147


148


149


150


151



package
com.czgo.dao;


 


import
java.sql.Connection;


import
java.sql.PreparedStatement;


import
java.sql.ResultSet;


import
java.sql.SQLException;


import
java.util.ArrayList;


import
java.util.List;


 


import
com.czgo.db.DBUtil;


import
com.czgo.model.Goddess;


 


/


 
数据层处理类


 



 
@author AlanLee


 



 
*/


public
class
GoddessDao


{


  
/



   
查询全部女神


   



   
@return


   
@throws SQLException


   
/


  
public
List<Goddess> query()
throws
SQLException


  
{


    
List<Goddess> goddessList =
new
ArrayList<Goddess>();


 


    
// 获得数据库连接


    
Connection conn = DBUtil.getConnection();


 


    
StringBuilder sb =
new
StringBuilder();


    
sb.append(
“select id,name,mobie,email,address from goddess”
);


 


    
// 通过数据库的连接操作数据库,实现增删改查


    
PreparedStatement ptmt = conn.prepareStatement(sb.toString());


 


    
ResultSet rs = ptmt.executeQuery();


 


    
Goddess goddess =
null
;


 


    
while
(rs.next())


    
{


      
goddess =
new
Goddess();


      
goddess.setId(rs.getInt(
“id”
));


      
goddess.setName(rs.getString(
“name”
));


      
goddess.setMobie(rs.getString(
“mobie”
));


      
goddess.setEmail(rs.getString(
“email”
));


      
goddess.setAddress(rs.getString(
“address”
));


 


      
goddessList.add(goddess);


    
}


    
return
goddessList;


  
}


 


  
/**


   
查询单个女神


   



   
@return


   
@throws SQLException


   
/


  
public
Goddess queryById(Integer id)
throws
SQLException


  
{


    
Goddess g =
null
;


 


    
Connection conn = DBUtil.getConnection();


 


    
String sql =
“”
+
“ select from imooc_goddess “
+
“ where id=? “
;


 


    
PreparedStatement ptmt = conn.prepareStatement(sql);


 


    
ptmt.setInt(
1
, id);


 


    
ResultSet rs = ptmt.executeQuery();


 


    
while
(rs.next())


    
{


      
g =
new
Goddess();


      
g.setId(rs.getInt(
“id”
));


      
g.setName(rs.getString(
“name”
));


      
g.setMobie(rs.getString(
“mobie”
));


      
g.setEmail(rs.getString(
“email”
));


      
g.setAddress(rs.getString(
“address”
));


    
}


 


    
return
g;


  
}


 


  
/**


   
添加女神


   



   
@throws SQLException


   
/


  
public
void
addGoddess(Goddess goddess)
throws
SQLException


  
{


    
// 获得数据库连接


    
Connection conn = DBUtil.getConnection();


 


    
String sql =
“insert into goddess(name,mobie,email,address) values(?,?,?,?)”
;


 


    
PreparedStatement ptmt = conn.prepareStatement(sql);


 


    
ptmt.setString(
1
, goddess.getName());


    
ptmt.setString(
2
, goddess.getMobie());


    
ptmt.setString(
3
, goddess.getEmail());


    
ptmt.setString(
4
, goddess.getAddress());


 


    
ptmt.execute();


  
}


 


  
/**


   
修改女神资料


   



   
@throws SQLException


   
/


  
public
void
updateGoddess(Goddess goddess)
throws
SQLException


  
{


    
Connection conn = DBUtil.getConnection();


 


    
String sql =
“update goddess set name=?,mobie=?,email=?,address=? where id=?”
;


 


    
PreparedStatement ptmt = conn.prepareStatement(sql);


 


    
ptmt.setString(
1
, goddess.getName());


    
ptmt.setString(
2
, goddess.getMobie());


    
ptmt.setString(
3
, goddess.getEmail());


    
ptmt.setString(
4
, goddess.getAddress());


 


    
ptmt.execute();


  
}


 


  
/**


   
删除女神


   



   
@throws SQLException


   
*/


  
public
void
deleteGoddess(Integer id)
throws
SQLException


  
{


    
Connection conn = DBUtil.getConnection();


 


    
String sql =
“delete from goddess where id=?”
;


 


    
PreparedStatement ptmt = conn.prepareStatement(sql);


 


    
ptmt.setInt(
1
, id);


 


    
ptmt.execute();


  
}


}

第六步,控制层的实现(控制层在此处用来模仿控制层和界面,直接在这里构建数据,如果是界面的数据则通过请求传递接收参数即可,控制层的代码大家可以根据实际情况去更改完善,这里只是给大家抛砖引玉,做个简单的测试,时间比较紧,希望大家理解),代码如下:

?










1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


51


52


53


54


55


56


57


58


59


60


61


62


63


64


65


66


67


68


69


70


71


72


73


74


75


76


77


78


79


80


81


82


83


84


85


86


87


88


89


90


91


92


93


94


95


96


97


98


99



package
com.czgo.action;


 


import
java.sql.SQLException;


import
java.util.List;


 


import
com.czgo.dao.GoddessDao;


import
com.czgo.model.Goddess;


 


/


 
控制层,直接在这里构建数据,界面的数据则通过请求传递接收即可,亦是同理


 



 
@author AlanLee


 



 
*/


public
class
GoddessAction


{


  
/



   
新增女神


   



   
@param goddess


   
@throws Exception


   
/


  
public
void
add(Goddess goddess)
throws
Exception


  
{


    
GoddessDao dao =
new
GoddessDao();


    
goddess.setName(
“苍井空”
);


    
goddess.setMobie(
“52220000”
);


    
goddess.setEmail(
“52220000@qq.com”
);


    
goddess.setAddress(
“北京红灯区”
);


    
dao.addGoddess(goddess);


  
}


 


  
/**


   
查询单个女神


   



   
@param id


   
@return


   
@throws SQLException


   
/


  
public
Goddess get(Integer id)
throws
SQLException


  
{


    
GoddessDao dao =
new
GoddessDao();


    
return
dao.queryById(id);


  
}


 


  
/**


   
修改女神


   



   
@param goddess


   
@throws Exception


   
/


  
public
void
edit(Goddess goddess)
throws
Exception


  
{


    
GoddessDao dao =
new
GoddessDao();


    
dao.updateGoddess(goddess);


  
}


 


  
/


   
删除女神


   



   
@param id


   
@throws SQLException


   
*/


  
public
void
del(Integer id)
throws
SQLException


  
{


    
GoddessDao dao =
new
GoddessDao();


    
dao.deleteGoddess(id);


  
}


 


  
/



   
查询全部女神


   



   
@return


   
@throws Exception


   
/


  
public
List<Goddess> query()
throws
Exception


  
{


    
GoddessDao dao =
new
GoddessDao();


    
return
dao.query();


  
}


 


  
/**


   
测试是否成功


   



   
@param args


   
@throws SQLException


   
/


  
public
static
void
main(String[] args)
throws
SQLException


  
{


    
GoddessDao goddessDao =
new
GoddessDao();


 


    
List<Goddess> goddessList = goddessDao.query();


 


    
for
(Goddess goddess : goddessList)


    
{


      
System.out.println(goddess.getName() +
“,”
+ goddess.getMobie() +
“,”
+ goddess.getEmail());


    
}


  
}


}

最后,让我们看一下main方法的运行结果是否成功:

2016071010554236.jpg

这样,一个简单的java jdbc 连接mysql数据库 实现增删改查便完成了,大家可以在查询的基础上试着去做一个高级查询,也就是多条件查询来巩固jdbc的使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,转载自脚本之家。

发表评论

表情:
评论列表 (有 0 条评论,330人围观)

还没有评论,来说两句吧...

相关阅读