一、下载数据库JDBC驱动

    1、1:Mysql驱动

        https://dev.mysql.com/downloads/connector/

 

下载得到的是一个压缩包,解压后到里面寻找文件:mysql-connector-java-8.0.12.jar

这个:mysql-connector-java-8.0.12.jar就是我们要导入到jJAVA项目中。

二、导入数据库驱动包

    这次我是应用Intellje IDEA开发软件,如果应用eclipse直接把包复制到项目中的lib中即可。

或者:

找到你的包所在位置

然后点击Apply按钮后点击OK

结果:

三、代码实现

  1、建包

  

建类:

package com.yangwansheng.test.util;import java.sql.*;public class MysqlJdbcUtil {private static String driver = "com.mysql.jdbc.Driver";//驱动//数据库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;//执行语句对象//打开数据库连接public static void open() {try {//加载驱动Class.forName("com.mysql.jdbc.Driver");//打开连接--实例化数据库连接对象conn = DriverManager.getConnection(url, user, pwd);} catch (Exception e) {e.printStackTrace();}}//关闭数据库连接对象,释放内存public static void close() {try {//判断数据库是否处于连接中if (conn != null && conn.isClosed()) {conn.close();}if (stat != null) {stat.close();}} catch (Exception e) {e.printStackTrace();}}/**** 查询所有数据*/public static ResultSet executeQuery(String sql) {try {open();stat = conn.createStatement();return stat.executeQuery(sql);} catch (Exception e) {e.printStackTrace();}return null;}/*** 条件查询、分页查询* @param sql 数据库执行语句* @param o 参数* @return 反回一个集合命令*/public static ResultSet executeQuery(String sql,Object... o){try {open();PreparedStatement pst=conn.prepareStatement(sql);for(int i=0;i<o.length;i++)pst.setObject(i+1, o[i]);return pst.executeQuery();} catch (SQLException e) {e.printStackTrace();}return null;}/**执行增、删、改*/public static int executUpeate(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;return pst.executeUpdate();} catch (Exception e) {e.printStackTrace();}return 0;}
}

四、jdbcUtil类的调用

  4、1:创建bo实体类

  

package com.yangwansheng.test.bo;public class StudentCourse {private int id;private String Sno;private String Cno;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getSno() {return Sno;}public void setSno(String sno) {Sno = sno;}public String getCno() {return Cno;}public void setCno(String cno) {Cno = cno;}public StudentCourse(int id, String sno, String cno) {this.id = id;Sno = sno;Cno = cno;}public StudentCourse(){}@Overridepublic String toString() {return "StudentCourse{" +"id=" + id +", Sno='" + Sno + '\'' +", Cno='" + Cno + '\'' +'}';}
}

  4、2:数据库访问层DAO

package com.yangwansheng.test.dao;import com.yangwansheng.test.bo.StudentCourse;
import com.yangwansheng.test.util.MysqlJdbcUtil;import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class StudentCourseDao {/**查询所有的学生选课表的信息*/public List<StudentCourse> getAllStudentCourse(){List<StudentCourse> 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 = new StudentCourse(rs.getInt("id"),rs.getString("Cname"),rs.getString("Sname"));list.add(stucou);}return list;}catch (Exception e){e.printStackTrace();}finally {MysqlJdbcUtil.close();}return null;}/*** 分页查询* @param state* @param end* @return*/public List<StudentCourse> getPageStudentCourse(int state, int end){List<StudentCourse> 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 = new StudentCourse(rs.getInt("id"),rs.getString("Cname"),rs.getString("Sname"));list.add(stucou);}return list;}catch (Exception e){e.printStackTrace();}finally {MysqlJdbcUtil.close();}return null;}//修改public int updateSc(int id ,String Cno){String sql ="update StudentCourse set Cno = ? where id=? ";int i = MysqlJdbcUtil.executUpeate(sql,Cno,id);return i;}/*** 添加* @return 大于一添加成功*/public int addSc(String sno, String con){String sql ="insert into StudentCourse(Sno,Cno) VALUES(?,?);";int i = MysqlJdbcUtil.executUpeate(sql,sno,con);return i;}/*** 删除* @param id * @return 大于1执行成功*/public int delSc(int id){String sql ="delete from StudentCourse where id=?;";int i = MysqlJdbcUtil.executUpeate(sql,id);return i;}
}

4、3:创建测试类

package com.yangwansheng.test.test;import com.yangwansheng.test.bo.StudentCourse;
import com.yangwansheng.test.dao.StudentCourseDao;public class MysqlTest {public static void main(String[] args) {StudentCourseDao SCdao = new StudentCourseDao();System.out.println(SCdao.getAllStudentCourse());}
}

结果:

转载于:https://www.cnblogs.com/yangWanSheng/p/9636963.html

JAVA的JDBC连接数据库以及读取数据库数据相关推荐

  1. java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据

    一.下载数据库JDBC驱动 1.1:Mysql驱动 https://dev.mysql.com/downloads/connector/ 下载得到的是一个压缩包,解压后到里面寻找文件:mysql-co ...

  2. 在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号、书名、单价、数量)。 利用JDBC连接数据库dbjava,实现数据表的增删 改查

    题目 1.在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号.书名.单价.数量). 2.利用JDBC连接数据库dbjava,实现数据表 ...

  3. java传入数据库生成柱状图_Java读取数据库数据生成柱状图

    此案例是用swing显示数据的.须要引入jfreechart相关包.不同版本号可能包不同样.本人用的是 此案例在ssi框架下会报错,不用框架就没问题. Java后台逻辑代码: public class ...

  4. java下拉框读取数据库数据_在一个jsp页面实现二级下拉框联动,实时读取数据库数据...

    在一个jsp(SUN企业级应用的首选)页面实现二级下拉框联动,实时读取数据库数据,这个方法非常使用,只需要修改很小的地方就可以使用.设计的文件,serch.jsp(SUN企业级应用的首选),main. ...

  5. Java中JDBC连接数据库详解

    今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...

  6. jmeter提取mysql数据_通过jmeter读取数据库数据,并取值作为请求的入参

    为提升测试技能,督促自己学习.故写了这篇文章.测试小白一枚,最近感觉达到了自己认为的瓶颈期.总是有想法,想突破,但是无从入手.工具类用过fiddler.jmeter.charels.postman.. ...

  7. java通过jdbc访问mysql,update数据返回值的思考

    java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...

  8. C#连接sqlserver数据库,插入数据,并且读取数据库数据画折线图。

    这篇文章主要分为两个部分,1.连接数据库.2.读取数据库数据然后作图(chart控件). 首先先讲一下连接数据库,我的环境是Visual Studio2010和sqlserver2012,先确保自己电 ...

  9. Python读取数据库数据写入Excel

    Python读取数据库数据写入Excel 本文示例: 读取数据库数据 创建Excel文件,并创建指定名称的sheet页 将数据库数据写入创建的sheet页中 保存文件 示例代码: # -*- codi ...

最新文章

  1. Spring源码解析 - AbstractBeanFactory 实现接口与父类分析
  2. 【中间件】消息队列-RabbitMQ
  3. linux怎么查看数据库性能,正确评估SQL数据库性能,你必须知道的原理和方法!...
  4. nginx配置实战1----配置虚拟主机
  5. PyCharm下载及使用
  6. 演示使用Metasploit入侵Windows
  7. 【Thinking In Java】笔记之一 一切都是对象
  8. Android手机修改wifi图标,安卓手机怎么改wifi密码?
  9. Autolisp:利用AuoCAD之Lisp编程案例之智能加工齿轮的演示程序
  10. R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...
  11. 云查毒:避免恶意程序入侵的正确姿势
  12. echarts 全国各省市3D图
  13. [DAX] AVERAGE函数 | AVERAGEX函数
  14. 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
  15. Speedoffice(excel)如何快捷隐藏表格内所有空行
  16. 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
  17. 中国 98 家央企及下属 409 家上市企业全名单( 2023 最新版)
  18. 细说JVM系列:JVM存在的目的和意义是什么?
  19. ionic2混合应用调起原生地图应用
  20. 2022-2027年中国半导体整流设备市场竞争态势及行业投资前景预测报告

热门文章

  1. 容量是GPT-2的1.7倍!谷歌打造神经对话模型Meena
  2. SAP SD 客户信贷管理解析
  3. 做机器学习项目的checklist
  4. 谷歌大脑新算法,不折腾TPU就能加快AI训练速度
  5. SAP PI 集成引擎
  6. 这次中兴也藏了“备胎”!国产操作系统迎出头之日,即将规模商用
  7. 神经元产生的雌激素可能是一种新型的神经调节剂
  8. 【智能制造】三张图读懂人工智能在工厂如何具体应用
  9. AI产品经理需了解的技术知识:语音识别技术(2)
  10. 言论丨李开复:中国在AI领域的优势与机会,现阶段AI领域的挑战