- 创建实体类
- 创建接口
- 接口的实例化
- 得到session
- 用session执行SQL语句,完成相应的功能
得到session的步骤
https://blog.csdn.net/fdk2zhang/article/details/82940950
增删改用户时,需要session.commit();否则能够得到返回值,但是数据库中的数据不会更改
一.增
插入新用户,标签 insert
实现类中代码为:
//插入新用户
public int insertstudent(Users users) {
SqlSession session=su.getsession();
//映射文件的mapper中的路径去找相应的执行sql语句
int k=session.insert("com.fdk.dao.UsersDao.insertstudent",users);
session.commit();
session.close();
return k;
}
insert第一个参数为mapper中的namespace + id,第二个参数users是添加的对象
mapper文件代码:
<insert id="insertstudent" parameterType="com.fdk.been.Users">
insert into students(studentname,studentsex,studentbirthday,classno)
values (#{studentname},#{studentsex},#{studentbirthday},#{classno})
</insert>
parameter为传递过来的参数类型,能直接用#{studentname}的方式得到数据,必须与实体类中的属性名相同
二.删
删除用户,标签 delete
实现类中代码
//删除用户
public int deletestudent(int id) {
SqlSession session=su.getsession();
int k=session.delete("deletestudent",id);
session.commit();
session.close();
return k;
}
当在mapper映射路径中,id值唯一,可以省略前缀,直接写id值,第二个参数为要删除用户的id号
mapper文件代码:
<delete id="deletestudent">
delete from students where studentno=#{id}
</delete>
三.改
更改用户信息,标签 update
实现类中的代码为:
//修改用户
public int updatestudent(Users users){
SqlSession session=su.getsession();
System.out.println(users.getStudentno());
System.out.println(users.getStudentname());
int k = session.update("com.fdk.dao.UsersDao.updatestudent",users);
session.commit();
session.close();
return k;
}
mapper文件中的代码为:
<update id="updatestudent" parameterType="com.fdk.been.Users">
update students set studentname=#{studentname} where studentno=#{studentno}
</update>
四.查
- 查询所有
- 聚合查询
- 模糊查询
查询所有
实现类中的代码为:
//查询所有用户
public List findall() {
List list=null;
//得到session
SqlSession session=su.getsession();
//方法参数 : namespace +id
//selectList可以查询一条或多条记录,selectOne: 查询一条记录
//selectList映射文件中的mapper中的路径去找相应的执行sql语句
list=session.selectList("findall");
session.close();
return list;
}
mapper文件的代码为:
<!--resultType="返回的结果类型"-->
<select id="findall" resultType="Users">
select * from students
</select>
查询的时候会返结果集,resultType属性决定返回值的类型
对结果集进行输出
//查询所有用户
public static void main(String[] args) {
UsersDao dao=new UsersDaoImpl();
List<Users> list=dao.findall();
for (Users u : list) {
System.out.println(u.getStudentno());
}
}
输出结果集只需要用 .get()方法即可
聚合查询和模糊查询
https://blog.csdn.net/fdk2zhang/article/details/82944064