java实现数据库的增删查改
本文章为记录自己自学java与数据库连接
学习的非常粗糙且只实现了增删查改,借此留下印象。
这与老师所教授的有很多出入而且采用的是关于是固定的模板(事先写好的java包)
后面有主要代码的分享(百度网盘)
需要基本技术
1.需要掌握java基本的代码操作
2.掌握简单的SQL语句
3.java中GUI的编写
如果不打算写GUI,直接在控制台上运行的话,我会近期再写一篇
需要软件
1.java编译工具 :Intellij IDEA 2020.1 x64 (此软件需要破解)
2.数据库工具 :mysql 5.7 (sql也可,但与mysql有些许不同)
3.数据库管理工具 :navicat for sql (此软件需要破解)
4.JDK版本 : JDK1.8
注意:
ecplise2021最新版只能使用jdk11以上版本
mysql最新版为8.0 只有在mysql官网上查找历史版本才可下载5.7
navicat 和 idea都有免费的试用时间
mysql版本跟后续的jdbc.jar包版本挂钩
jdk16为最新版 不建议使用
软件下载
idea下载
idea下载官网
此官网可能需要翻墙
mysql下载
mysql官网
mysql下载与检测
点击downloads
点击mysql community downloads
点击mysql installer for windows
mysql 8.0选择下面一个版本下载既可
5.7点这里
下载下面一个版本既可
mysql刚开始下载和运行困难重重
有问题就去询问其他大佬
老师也可能有完整的mysql安装包
navicat下载
navicat下载
百度或csdn上自行搜索破解版
使用mysql自带的管理平台也行不一定非要navicat
jdk
jdk1.8相信大家都有 环境变量也能相应配置
感谢以上博客在我一头雾水的时候帮助了我
navicat上检测mysql是否能正常使用
软件关联
1.navicat需与mysql正常连接
比如在navicat里新建的数据 能在mysql里看见
往各位自行摸索mysql是否能正常运行
2.新建navicat连接
连接名可以任意
用户名和密码一定要设定好
再然后在新建的连接里面新建数据库、填入数据等操作
3.idea选择jdk版本
点击project structure
如果没有 则手动添加jdk安装目录
从零开始程序代码
软件的安装完成之后就可以写项目了
新建项目
我写的是GUI 什么都不用点 直接next
这里也不用 next
命名和选择路径
新建完成
编写代码
druid.properties
在src层右键 生成resource bundle
输入以下代码:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///stu
username=root
password=123456
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
其中driverClassName如果是mysql则不用更改 sqlserver则需要更改
username = navicat中新建连接的用户名
password = navicat中新建连接的密码
其他不用更改
csdn上下载文件要付费,只能弄在网盘上分享了,但网盘上是完整代码不知道能不能直接使用,建议还是新建一个全新的项目,复制文件进去进行实现
链接:https://pan.baidu.com/s/1ofAj-HAM0aNXbaHiAcOtQQ
提取码:44ok
util文件夹
package util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import javax.xml.crypto.Data;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* JDBC工具类 使用Durid连接池
*/
public class JDBCUtils {
private static DataSource ds ;
static {
try {
//1.加载配置文件
Properties pro = new Properties();
//使用ClassLoader加载配置文件,获取字节输入流
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//2.初始化连接池对象
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接池对象
*/
public static DataSource getDataSource(){
return ds;
}
/**
* 获取连接Connection对象
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
}
这是java与数据库连接的代码,不需要做任何改动。
lib文件夹
lib文件夹中存放的是jar包
比如说 jdk jdbc 等等一类的写好的java文件
直接导入就可以使用
jar包前面有三角形意味着成功导入,没有就没有成功导入
选中你要导入的jar包
右键
点击add as libary
点击ok
成功导入
dao文件夹
package dao;
import pojo.Stu;
import java.util.List;
import java.util.Map;
public interface StuDao {
public List<Stu> findAll();
//增加
public void add(Stu stu);
//查找
public Stu findId(int id);
//修改
public void update(Stu stu);
//删除
public void delete(int id);
//
public int findTotalCount(Map<String, String[]> parameterMap);
//
public List<Stu> findByPage(int start, int rows, Map<String, String[]> parameterMap);
//
}
dao层里是对增删查改函数的声明
pojo文件夹
package pojo;
public class Stu {
private Integer id;
private String name;
private Integer age;
private String sex;
@Override
public String toString() {
return "Stu{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Stu() {
}
public Stu(Integer id, String name, Integer age, String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
其中
Stu函数:定义了Stu的数据集 该数据集还有四个元素。定义的Stu可以当成int,char一样的数据类型放在函数参量使用。
toString函数:定义了Stu数据集的输出格式。
getName等函数:在有数据集Stu的情况下可以单独获取其中一个元素的信息。
setName等函数:在需要更改数据集Stu的情况下可以对其中一个元素赋予新值。
impl文件夹
package dao.Impl;
import dao.StuDao;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import pojo.Stu;
import util.JDBCUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class StuDaoImpl implements StuDao {
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<Stu> findAll() {
//使用JDBC操作数据库
//1.定义sql
List<Stu> Stus;
String sql = "select * from student";
Stus = template.query(sql, new BeanPropertyRowMapper<Stu>(Stu.class));
return Stus;
}
@Override
public void add(Stu stu) {
//1.定义sql语句
String sql = "insert into student(`id`,`name`,`age`,`sex`) value(?,?,?,?)";
//2.执行sql
template.update(sql, stu.getId(), stu.getName(),stu.getAge(), stu.getSex());
}
@Override
public Stu findId(int id) {
//1.定义sql
String sql = "select * from student where id = ?";
//2.执行sql语句,将信息转为对象
return template.queryForObject(sql, new BeanPropertyRowMapper<Stu>(Stu.class), id);
}
@Override
public void update(Stu stu) {
//1.定义sql
String sql = "update student set id = ?, name= ?, age = ?, sex = ? where id = ?";
//2.执行sql语句,将信息转为对象
template.update(sql, stu.getId(), stu.getName(),stu.getAge(), stu.getSex(),stu.getId());
}
@Override
public void delete(int id) {
//1.定义sql
String sql = "delete from student where id = ?";
//2.执行sql语句
template.update(sql, id);
}
其中
List[Stu]是将多个Stu数据集汇聚成一个列表
String sql 定义了sql的语句 你要实现什么样的功能就在这里写什么样的sql语句
template有这个jar包才能使用的函数
test文件夹
test其实就是对把大块的代码分成多个函数进行测试
package test;
import dao.Impl.StuDaoImpl;
import pojo.Stu;
import java.sql.SQLOutput;
import java.util.List;
public class jdbctest {
public static void main(String[] args) {
StuDaoImpl sd=new StuDaoImpl();
//添加测试
//sd.add(new Stu(1,"龙傲天",18,"男"));
//sd.add(new Stu(2,"兔子",20,"女"));
//删除测试
//sd.delete(1);
//修改测试
//sd.update(new Stu(2,"奥利给",20,"男"));
//查询测试 全部
//List<Stu> all = sd.findAll();
//System.out.println(all);
//查询第一个
Stu ss = sd.findId(3);
System.out.println(ss);
// all.toString();
}
}
在完成以上三个文件夹的代码后就可以进行测试了
这里测试的是对数据库的增删查改的函数
也能对是否能与数据库连接进行了测试
测试不会影响主函数的运行
如果jdbc测试爆红且是连接报错,多加耐心,只要能解决这个问题剩下都好写
连接问题的报错太多
当时的我也是在csdn上一一对照解决问题的。
view文件夹
view里写的全是界面的UI
main函数直接到window界面
window界面添加界面按钮和动作监听
add 添加界面
findALL查询所有信息的界面
update修改界面
删除界面和按学号查询界面直接写在了window里面
按个人习惯自行编写
src
image是图片存放的文件夹
在UI的设计中可能用到
以上就实现了jdbc的增删查改及UI设计
结语
对资源的总结:
idea下载:自行百度或私信
mysql下载:mysql下载与检测
jdk和navicat自选下载
完整代码:链接:https://pan.baidu.com/s/1ofAj-HAM0aNXbaHiAcOtQQ
提取码:44ok
这个大作业耗时太久,但是又过于仓促,虽然最后完成了,但是很多东西都讲不清,以上的内容我也没有再次落实。
如果遇到问题,请积极留言。
如果在我的内容中发现了错误,我会立刻改正。
望各位武运昌隆。