
java连接数据库实现基本的增删改查
·
目录
一、在IDEA中配置数据库项目环境
1.创建项目
2.选择依赖
二、在JAVA中进行操作建立与数据库的连接
1、配置数据源——让程序可以访问到
等待依赖下载完成,写入以下配置信息。包括驱动、数据源地址、数据源访问用户名和密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
2.配置数据源——让idea可以访问到
在database里选择Data souce再选择MySQL,
在这一步,我们需要准备三样东西 URL
,账户用户名
,密码
URL:表示跟数据库通信的地址。
用户名:自然就是拥有数据库权限的账户了,这里使用根用户root
。
密码:登录数据库需要用户名及对应的密码
填写主机名/地址、mysql用户名及密码,下载驱动完成后做链接测试,测试连接成功,点击ok,如下图
三、JAVA已经成功连接数据库,现在编写增删改的代码
1.添加数据库和表
DROP DATABASE IF EXISTS `testdb`;
create database testdb;
Use testdb;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` int NOT NULL AUTO_INCREMENT COMMENT '用户 ID',
`user_name` varchar(255) DEFAULT NULL COMMENT '用户名',
`status` varchar(255) DEFAULT NULL COMMENT '用户状态',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
2.运行sql语句,创建数据库和表
3.实体模型Model
4.程序框架
5.数据访问层DAO
5.1、接口CRUD+(先做新接口)
5.2、DAO层实现类--JdbcTemplate
(先实现新增接口)
Repository注解Dao实现类
Resource注入JdbcTemplate
6.业务处理层
6.1、业务处理层接口
(先做新增)
6.2、业务处理层实现类
@Service注解
7.测试新增
8.其他功能
8.1、DAo
8.1.1接口
8.1.2 Dao实现
UserDaoImpl代码
@Repository
public class UserDaoImpl implements UserDao {
@Resource
private JdbcTemplate jdbcTemplate;
@Resource
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Override
public int addUser(User user){
String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);";
int update= jdbcTemplate.update(sql,user.getUserName(),user.getStatus());
return update;
}
@Override
public int update(User user) {
String sql="UPDATE `user` SET status=? WHERE user_name=?;";
return jdbcTemplate.update(sql,user.getStatus(),user.getUserName());
}
@Override
public int delete(User user) {
String sql="DELETE FROM `user` where user_name=?;";
return jdbcTemplate.update(sql,user.getUserName());
}
@Override
public int count(User user) {
String sql="SELECT COUNT(*) FROM `user` where `status`=?;";
return jdbcTemplate.queryForObject(sql,Integer.class,user.getStatus());
}
@Override
public List<User> getList(User user) {
String sql="SELECT * FROM `user` where `status`=?;";
return jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class),user.getStatus());
}
@Override
public User getUser(User user) {
String sql="SELECT * FROM `user` where user_id=?;";
return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),user.getUserId());
}
@Override
public void batchAddUser(List<Object[]> batchArgs) {
String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);";
jdbcTemplate.batchUpdate(sql,batchArgs);
}
}
8.2 业务层
8.2.1接口层
UserService完整代码
public interface UserService {
/**
* 新增用户数据
*
* @param user
* @return
*/
public int addUser(User user);
/**更新*/
public int updateUser(User user);
/**删除*/
public int deleteUser(User user);
/**统计用户数量 */
public int countUser(User user);
/**查询*/
public List<User> getUserList(User user);
//查询单个用户信息
public User getUser(User user);
//批量增加用户
public void batchAddUser(List<Object[]> batchArgs);
}
8.2.2实现层
四、测试其功能
1. 完整代码
public class UserServiceTests {
// @Resource
// private JdbcTemplate jdbcTemplate;
@Autowired UserService userService;
@Test
void TestUser(){
User user=new User();
user.setUserName("小张");
user.setStatus("在线");
//新增一个用户
int i= userService.addUser(user);
System.out.println("新增用户成功");
//更新
User user1=new User();
user1.setUserName("小张1");
user1.setStatus("在线");
int u=userService.updateUser(user);
System.out.println("修改用户成功");
//批量新增
List<Object[]> batchArgs=new ArrayList<>();
Object[] o1={"xx","在线"};
Object[] o2={"yy","在线"};
Object[] o3={"cc","离线"};
Object[] o4={"tt","在线"};
Object[] o5={"pp","离线"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
batchArgs.add(o4);
batchArgs.add(o5);
userService.batchAddUser(batchArgs);
System.out.println("批量增加完毕");
//查询在线用户数量
User user2=new User();
user2.setStatus("在线");
int o=userService.countUser(user2);
System.out.println("在线用户的个数为:"+o);
//获取用户列表(user2在线)
List<User> userList=userService.getUserList(user2);
System.out.println("在线用户查询成功");
//遍历在线列表
for (User user4 : userList){
System.out.println("用户 ID:"+ user4.getUserId() + ",用户名:" +user4.getUserName()+",状态:"+user4.getStatus());
}
}
2.运行代码
3.查看数据库
阅读全文
AI总结
更多推荐
相关推荐
查看更多
A2A

谷歌开源首个标准智能体交互协议Agent2Agent Protocol(A2A)
adk-python

一款开源、代码优先的Python工具包,用于构建、评估和部署灵活可控的复杂 AI agents
Second-Me

开源 AI 身份系统,通过本地训练和部署,模仿用户思维和学习风格,创建专属AI替身,保护隐私安全。
所有评论(0)