java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据
一、下载数据库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、建包
建类:
packagecom.yangwansheng.test.util;import java.sql.*;public classMysqlJdbcUtil {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 voidopen() {try{//加载驱动
Class.forName("com.mysql.jdbc.Driver");//打开连接--实例化数据库连接对象
conn =DriverManager.getConnection(url, user, pwd);
}catch(Exception e) {
e.printStackTrace();
}
}//关闭数据库连接对象,释放内存
public static voidclose() {try{//判断数据库是否处于连接中
if (conn != null &&conn.isClosed()) {
conn.close();
}if (stat != null) {
stat.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}/***
* 查询所有数据*/
public staticResultSet executeQuery(String sql) {try{
open();
stat=conn.createStatement();returnstat.executeQuery(sql);
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** 条件查询、分页查询
*@paramsql 数据库执行语句
*@paramo 参数
*@return反回一个集合命令*/
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;
}/**执行增、删、改*/
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类的调用
4、1:创建bo实体类
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:数据库访问层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 {/**查询所有的学生选课表的信息*/
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执行成功*/
public int delSc(intid){
String sql="delete from StudentCourse where id=?;";int i =MysqlJdbcUtil.executUpeate(sql,id);returni;
}
}
4、3:创建测试类
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());
}
}
结果:
java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据相关推荐
- 在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号、书名、单价、数量)。 利用JDBC连接数据库dbjava,实现数据表的增删 改查
题目 1.在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号.书名.单价.数量). 2.利用JDBC连接数据库dbjava,实现数据表 ...
- JAVA的JDBC连接数据库以及读取数据库数据
一.下载数据库JDBC驱动 1.1:Mysql驱动 https://dev.mysql.com/downloads/connector/ 下载得到的是一个压缩包,解压后到里面寻找文件:mysql-co ...
- java如何保存初始化数据_java – 如何在JUnit测试中初始化数据
我的任务是为服务层编写压力(负载)测试.主要是CRUD操作.我们使用JUnit作为测试框架,使用JUnitPerf构建负载测试,使用 Spring注入服务bean,使用hibernate访问数据库. ...
- java连接mysql实现增删改查_java连接数据库,实现增删改查操作
一.前言 写这个文章的原因是为了巩固自己连接数据库步骤 希望对初次学习数据库的朋友有所帮助 二.MySQL数据库连接 数据库连接步骤加载驱动程序,获取数据库连接对象 2.1驱动jar包 2.2代码 p ...
- java sqlserver 插入数据_java中怎样向SQLserver中插入数据
1. 通过Microsoft的JDBC驱动连接.此JDBC驱动共有三个文件,分别是mssqlserver.jar.msutil.jar和 msbase.jar,可以到微软的网站去下载(://www.m ...
- java测试类读取不到配置文件_java – 如何在单元测试中读取配置文件?
我有一个标准的maven项目布局. 一些配置文件存储在src / main / conf中. 现在我想在src / test中的单元测试中读取这些文件(例如,从其中一个文件中读取属性). 我怎么能完全 ...
- java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码
•创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...
- java项目启动加载数据_java项目启动时加载数据库信息存入缓存方法
一.获取需要加载的数据 @Component public class MathMethod { public void addMethod(int i) { //查询方法存入redis等库 Syst ...
- 如何向mysql表中添加数据类型_java中怎么把data类型的数据添加到数据库?
这种问题应该算是很初级的问题了,项目一直用的是util包下的date,所以临时看了一下sql.date的源码: 由源码,很容易可以看出来,sql.date提供了两种构造方法: 一. 提供年月日 @De ...
最新文章
- 计算机书籍- 聊天机器人技术原理与应用
- 南极冰盖数据集不如火星?借助无人机和机器学习,斯坦福学者着力挖掘最有价值数据...
- 【iOS数据持久化】Plist使用
- 软件测试用python一般用来做什么-python能够做软件的自动化测试吗?
- KVM之EPT与影子页表(七)
- 查看docker的端口映射情况
- 各大视觉技术竞赛冠军及 TOP 方案集锦(持续更新)
- kali安装tools
- java学习(106):字符串tocharArray,tolowercase,touppercase方法
- 计算机应用技术专业课程改革方案,【计算机维护论文】计算机应用技术专业教学改革方案(共4015字)...
- tocmat类加载:正统的类加载
- 检验例题_高一化学微课之81氨气的制备和铵根离子的检验
- Linux 服务器为什么被黑
- Python学习笔记(matplotlib篇)--多图figure
- 学习c语言编程用什么软件_用C编程
- Unity-URP-基于模板的延迟渲染
- CSS 外边距重叠及防止方法
- 洛谷 p1000 超级玛丽游戏
- 硬件特征码已达到最大上限_监控录像机“资源不足”或“达到上限” 的原因及解决方法!...
- Android 基于AccessibilityService智能安装Apk 仿 豌豆荚
热门文章
- 程序员如何理解客户需求
- ykcchf 2013 v2.1101 最新版下载
- 今天的我也不太清楚的即时通讯
- EXE.DLL文件图标导出器[免费下载]
- 如今编程成为了一个越来越重要的「技能」,如何自学编程我来教你
- 编程语言五花八门,哪种可以让程序员赚到更多钱?
- 我想重构网站的前端!不,你不想....
- yy神曲url解析php_php解析url的三个示例
- “新型冠状病毒国家科技资源服务系统”入选全球15项世界互联网领先科技成果...
- 什么样的研究有价值?