java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据
一、下載數(shù)據(jù)庫JDBC驅(qū)動(dòng)
1、1:Mysql驅(qū)動(dòng)
https://dev.mysql.com/downloads/connector/
下載得到的是一個(gè)壓縮包,解壓后到里面尋找文件:mysql-connector-java-8.0.12.jar
這個(gè):mysql-connector-java-8.0.12.jar就是我們要導(dǎo)入到j(luò)JAVA項(xiàng)目中。
二、導(dǎo)入數(shù)據(jù)庫驅(qū)動(dòng)包
這次我是應(yīng)用Intellje IDEA開發(fā)軟件,如果應(yīng)用eclipse直接把包復(fù)制到項(xiàng)目中的lib中即可。
或者:
找到你的包所在位置
然后點(diǎn)擊Apply按鈕后點(diǎn)擊OK
結(jié)果:
三、代碼實(shí)現(xiàn)
1、建包
建類:
packagecom.yangwansheng.test.util;import java.sql.*;public classMysqlJdbcUtil {private static String driver = "com.mysql.jdbc.Driver";//驅(qū)動(dòng)//數(shù)據(jù)庫
private static String url = "jdbc:mysql://localhost:3306/worksql?useUnicode=true&characterEncoding=UTF-8";private static String user = "YangWanSheng";//用戶名
private static String pwd = "Wansheng";//密碼
private static Connection conn = null;//連接對象
private static Statement stat = null;//執(zhí)行語句對象//打開數(shù)據(jù)庫連接
public static voidopen() {try{//加載驅(qū)動(dòng)
Class.forName("com.mysql.jdbc.Driver");//打開連接--實(shí)例化數(shù)據(jù)庫連接對象
conn =DriverManager.getConnection(url, user, pwd);
}catch(Exception e) {
e.printStackTrace();
}
}//關(guān)閉數(shù)據(jù)庫連接對象,釋放內(nèi)存
public static voidclose() {try{//判斷數(shù)據(jù)庫是否處于連接中
if (conn != null &&conn.isClosed()) {
conn.close();
}if (stat != null) {
stat.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}/***
* 查詢所有數(shù)據(jù)*/
public staticResultSet executeQuery(String sql) {try{
open();
stat=conn.createStatement();returnstat.executeQuery(sql);
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** 條件查詢、分頁查詢
*@paramsql 數(shù)據(jù)庫執(zhí)行語句
*@paramo 參數(shù)
*@return反回一個(gè)集合命令*/
public staticResultSet executeQuery(String sql,Object... o){try{
open();
PreparedStatement pst=conn.prepareStatement(sql);for(int i=0;i
pst.setObject(i+1, o[i]);returnpst.executeQuery();
}catch(SQLException e) {
e.printStackTrace();
}return null;
}/**執(zhí)行增、刪、改*/
public static intexecutUpeate(String sql, Object... obj) {try{
open();
PreparedStatement pst=conn.prepareStatement(sql);for (int i = 0; i < obj.length; i++) {
pst.setObject(i+ 1, obj[i]);
}
stat=pst;returnpst.executeUpdate();
}catch(Exception e) {
e.printStackTrace();
}return 0;
}
}
四、jdbcUtil類的調(diào)用
4、1:創(chuàng)建bo實(shí)體類
packagecom.yangwansheng.test.bo;public classStudentCourse {private intid;privateString Sno;privateString Cno;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getSno() {returnSno;
}public voidsetSno(String sno) {
Sno=sno;
}publicString getCno() {returnCno;
}public voidsetCno(String cno) {
Cno=cno;
}public StudentCourse(intid, String sno, String cno) {this.id =id;
Sno=sno;
Cno=cno;
}publicStudentCourse(){}
@OverridepublicString toString() {return "StudentCourse{" +
"id=" + id +
", Sno='" + Sno + '\'' +
", Cno='" + Cno + '\'' +
'}';
}
}
4、2:數(shù)據(jù)庫訪問層DAO
packagecom.yangwansheng.test.dao;importcom.yangwansheng.test.bo.StudentCourse;importcom.yangwansheng.test.util.MysqlJdbcUtil;importjava.sql.ResultSet;importjava.util.ArrayList;importjava.util.List;public classStudentCourseDao {/**查詢所有的學(xué)生選課表的信息*/
public ListgetAllStudentCourse(){
List list = new ArrayList<>();
String sql= "SELECT `StudentCourse`.id, `Course`.Cname, `Student`.Sname FROM `StudentCourse`";
sql+=" LEFT JOIN `Course` ON `StudentCourse`.Cno = `Course`.Cno ";
sql+=" LEFT JOIN `Student` ON `StudentCourse`.Sno = `Student`.Sno LIMIT 0,5";
ResultSet rs=MysqlJdbcUtil.executeQuery(sql);try{while(rs.next()){
StudentCourse stucou= newStudentCourse(
rs.getInt("id"),rs.getString("Cname"),
rs.getString("Sname")
);
list.add(stucou);
}returnlist;
}catch(Exception e){
e.printStackTrace();
}finally{
MysqlJdbcUtil.close();
}return null;
}/*** 分頁查詢
*@paramstate
*@paramend
*@return
*/
public List getPageStudentCourse(int state, intend){
List list = new ArrayList<>();
String sql= "SELECT `StudentCourse`.id, `Course`.Cname, `Student`.Sname FROM `StudentCourse`";
sql+=" LEFT JOIN `Course` ON `StudentCourse`.Cno = `Course`.Cno ";
sql+=" LEFT JOIN `Student` ON `StudentCourse`.Sno = `Student`.Sno LIMIT ?,?";
ResultSet rs=MysqlJdbcUtil.executeQuery(sql,state,end);try{while(rs.next()){
StudentCourse stucou= newStudentCourse(
rs.getInt("id"),rs.getString("Cname"),
rs.getString("Sname")
);
list.add(stucou);
}returnlist;
}catch(Exception e){
e.printStackTrace();
}finally{
MysqlJdbcUtil.close();
}return null;
}//修改
public int updateSc(intid ,String Cno){
String sql="update StudentCourse set Cno = ? where id=? ";int i =MysqlJdbcUtil.executUpeate(sql,Cno,id);returni;
}/*** 添加
*@return大于一添加成功*/
public intaddSc(String sno, String con){
String sql="insert into StudentCourse(Sno,Cno) VALUES(?,?);";int i =MysqlJdbcUtil.executUpeate(sql,sno,con);returni;
}/*** 刪除
*@paramid
*@return大于1執(zhí)行成功*/
public int delSc(intid){
String sql="delete from StudentCourse where id=?;";int i =MysqlJdbcUtil.executUpeate(sql,id);returni;
}
}
4、3:創(chuàng)建測試類
packagecom.yangwansheng.test.test;importcom.yangwansheng.test.bo.StudentCourse;importcom.yangwansheng.test.dao.StudentCourseDao;public classMysqlTest {public static voidmain(String[] args) {
StudentCourseDao SCdao= newStudentCourseDao();
System.out.println(SCdao.getAllStudentCourse());
}
}
結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fail2ban详细教程,解决网站被扫描
- 下一篇: c++ mysql 操作_c++操作my