通用增删改查

package com.softeem.jdbc1;


import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class EmpCRUD extends BaseConn{


public int getTotalNum() throws SQLException{
PreparedStatement ps = getConn().prepareStatement("select count(*) totalnum from employee");
ResultSet rs = ps.executeQuery();
if(rs.next()){
return rs.getInt("totalnum");
}
return 0;
}

public void queryByPage(int currentPage,int pageSize) throws SQLException{
PreparedStatement ps = getConn().prepareStatement("select * from employee limit ?,?");
ps.setInt(1, (currentPage-1)*pageSize);
ps.setInt(2, pageSize);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
int num = rs.getInt("num");
String name = rs.getString("name");
String addr = rs.getString("addr");
Date date = rs.getDate("birth");

System.out.println(num+"--"+name+"--"+addr+"--"+date);
}
rs.close();
ps.close();
}

public List<Object[]> query() throws SQLException{
PreparedStatement ps = getConn().prepareStatement("select * from department limit 0,10");
ResultSet rs = ps.executeQuery();
//获取结果集的元数据
ResultSetMetaData rsmd = rs.getMetaData();
//获取查询列总数
int count = rsmd.getColumnCount();
List<Object[]> list = new ArrayList<>();
while(rs.next()){
//每读取到一行记录声明一个数组
Object[] objs = new Object[count];
for (int i = 1; i <= count; i++) {
//获取列标签名(别名,若不存在则用列名)
String label = rsmd.getColumnLabel(i);
//获取列名称
String cname = rsmd.getColumnName(i);
//获取列数据类型
// int type = rsmd.getColumnType(i);
// if(type == java.sql.Types.INTEGER){
// int num = rs.getInt(label);
// System.out.print(num+"  ");
// }else if(type == java.sql.Types.VARCHAR){
// String value = rs.getString(label);
// System.out.print(value+"  ");
// }
//获取一列数据
Object obj = rs.getObject(label);
//将列数据装入数组中
objs[i-1] = obj;
}
//将装有多列数据的一行结果装入集合
list.add(objs);
}
return list;
}

public void add(Emp emp) throws SQLException{
String sql = "insert into employee(name,sex,tel,addr,email,zip,depno,birth) values(?,?,?,?,?,?,?,?)";
PreparedStatement ps = getConn().prepareStatement(sql);
ps.setString(1,emp.getName());
ps.setString(2,emp.getSex());
ps.setString(3,emp.getTel());
ps.setString(4,emp.getAddr());
ps.setString(5,emp.getEmail());
ps.setString(6,emp.getZip());
ps.setInt(7, emp.getDepno());
ps.setDate(8, new java.sql.Date(emp.getBirth().getTime()));
int i = ps.executeUpdate();
System.out.println("执行结果:"+i);
}

public List<Emp> findAll() throws SQLException{
List<Emp> list = new ArrayList<>();
String sql = "select num,name,sex,tel,addr,email,zip,depno,birth from employee limit 0,10";
PreparedStatement ps = getConn().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Emp emp = null;
while(rs.next()){
int num = rs.getInt("num");
String name = rs.getString("name");
String addr = rs.getString("addr");
String email = rs.getString("email");
String sex = rs.getString("sex");
String tel = rs.getString("tel");
String zip = rs.getString("zip");
int depno = rs.getInt("depno");
Date birth = rs.getDate("birth");

emp = new Emp(name, addr, zip, email, tel, sex, birth, depno);
emp.setNum(num);
list.add(emp);
}
return list;
}

/**
* 当前页
* 每页大小
* 如何使用jdbc链接数据库完成一个分页操作
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
// new EmpCRUD().queryByPage(3, 10);
// List<Object[]> list = new EmpCRUD().query();
// for (Object[] objects : list) {
// for (int i = 0; i < objects.length; i++) {
// System.out.print(objects[i]+"  ");
// }
// System.out.println();
// }
Emp emp = new Emp("狗蛋", "武汉大学", "430000", "hello@sina.com", "123321", "男", new Date(), 2);
// new EmpCRUD().add(emp);
List<Emp> emps = new EmpCRUD().findAll();
for (Emp emp2 : emps) {
System.out.println(emp2);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Mybatis中,可以使用通用mapper插件来实现泛型通用增删改查操作。通用mapper插件提供了各种高效的工具,可以简化开发者的工作,提高代码质量和开发效率。 下面是使用通用mapper插件实现泛型通用增删改查的示例代码: 1. 引入通用mapper插件的依赖: ```xml <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.1.5</version> </dependency> ``` 2. 创建实体类: ```java public class User { private Long id; private String name; // 省略getter和setter方法 } ``` 3. 创建Mapper接口: ```java @Mapper public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User> { } ``` 4. 在配置文件中配置通用mapper插件: ```xml <configuration> <!-- 其他配置 --> <plugins> <plugin interceptor="tk.mybatis.mapper.autoconfigure.MapperInterceptor"> <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/> </plugin> </plugins> </configuration> ``` 5. 使用通用mapper插件进行增删改查操作: ```java @Autowired private UserMapper userMapper; // 查询所有用户 List<User> userList = userMapper.selectAll(); // 根据主键查询用户 User user = userMapper.selectByPrimaryKey(1L); // 插入用户 User newUser = new User(); newUser.setName("张三"); userMapper.insert(newUser); // 更新用户 User updateUser = new User(); updateUser.setId(1L); updateUser.setName("李四"); userMapper.updateByPrimaryKey(updateUser); // 删除用户 userMapper.deleteByPrimaryKey(1L); ``` 通过以上步骤,我们可以使用通用mapper插件实现泛型通用增删改查操作,避免了大量的SQL编写,提高了开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值