- public void ff1(){ //单个参数查询
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- Admin admin=adminDao.findadminByid(1);
- System.out.println(admin.toString());
- sqlSession .close();
- }
Admin findadminByid(int i);
- <select id="findadminByid" parameterType="int" resultType="Admin">
- select * from admin where id = #{i}
- select>
- public void ff2(){ //多个参数查询
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- int a=adminDao.findadmin("admin","111");
- sqlSession .close();
- }
int findadmin(@Param ("account") String account,@Param ("password")String password);
- <select id="findadmin" resultType="java.lang.Integer">
- select * from admin where account = #{account} and password=#{password}
- select>
- public void ff3(){ //传入对象参数
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- Admin admin=new Admin("aaa","98798","女");
- int s=adminDao.saveAdmin(admin);
- System.out.println(s); //返回操作了几行数据
- sqlSession.commit();//对于数据的增删改,需要用commit来提交事务来给mysql在所有逻辑结束后进行提交
- sqlSession .close();
- }
int saveAdmin(Admin admin); //返回的是操作的行数
-
- <insert id="saveAdmin" parameterType="admin" >
- insert into admin(account,password,gender) value (#{account},#{password},#{gender})
- insert>
- public void ff4(){ //传入对象参数
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- Admin admin=new Admin("zahna","98798","女");
- int s=adminDao.saveAdminBackId(admin);
- System.out.println(admin.toString());
- System.out.println(s); //返回操作了几行数据
- sqlSession.commit();//对于数据的增删改,需要用commit来提交事务来给mysql在所有逻辑结束后进行提交
- sqlSession .close();
- }
- //int返回的是操作的记录数 可以为void类型
- int saveAdminBackId(Admin admin);
-
- <insert id="saveAdminBackId" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
- -- 开启返回主键功能 主键的列名 返回值赋给指定的对象中的属性 --
- insert into admin(account,password,gender) value (#{account},#{password},#{gender})
- insert>
- public void ff5(){ //传入对象参数
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- Admin admin=new Admin("za787a","998","男");
- admin.setId(2);
- int s=adminDao.updata(admin);
- System.out.println(admin.toString());
- System.out.println(s); //返回操作了几行数据
- sqlSession.commit();//对于数据的增删改,需要用commit来提交事务来给mysql在所有逻辑结束后进行提交
- sqlSession .close();
- }
int updata(Admin admin);
-
- <update id="updata" parameterType="admin">
- update admin set account=#{account},password=#{password} where id=#{id}
- update>
- public void ff6(){ //传入对象参数
- SqlSession sqlSession = MyBatisUtil.getSqlSession();
- //动态为接口生成一个代理对象,由代理对象去调用方法
- AdminDao adminDao=sqlSession.getMapper(AdminDao.class);
- int s=adminDao.delete(3);
- System.out.println(s); //返回操作了几行数据
- sqlSession.commit();//对于数据的增删改,需要用commit来提交事务来给mysql在所有逻辑结束后进行提交
- sqlSession .close();
- }
int delete(int i);
-
- <delete id="delete" parameterType="int">
- delete from admin where id=#{i}
- delete>
List admin=adminDao.findadminlist();
List findadminlist();
- <resultMap id="adminMap" type="admin">
- <result column="gender" property="xb">result>
- resultMap>
- <select id="findadminByid1" parameterType="int" resultMap="adminMap">
- select * from admin where id=#{i}
- select>
-
- <resultMap id="studentMap" type="Student">
- <id column="id" property="id">id>
- <result column="no" property="no">result>
- <result column="name" property="name">result>
- <result column="gender" property="gender">result>
-
- <association property="grade" javaType="Grade">
- <result column="ganme" property="name">result>
- association>
- <association property="admin" javaType="Admin">
- <result column="account" property="account">result>
- association>
- resultMap>
-
- <select id="findStudentByid" resultMap="studentMap" >
- SELECT s.id,s.no,s.name,s.gender,g.name gname,account
- FROM student s LEFT JOIN grade g ON s.gradeid=g.id
- LEFT JOIN ADMIN a ON s.adminid=a.id
- where s.id=#{id}
- select>
我们需要开启自动映射

语句复用


数据关系特点
在数据查询中,当为一对一的属性时,使用assoction标签
学生-年级-操作人
- <resultMap id="studentMap" type="Student">
- <id column="id" property="id">id>
- <result column="no" property="no">result>
- <result column="name" property="name">result>
- <result column="gender" property="gender">result>
-
- <association property="grade" javaType="Grade">
- <result column="ganme" property="name">result>
- association>
- <association property="admin" javaType="Admin">
- <result column="account" property="account">result>
- association>
- resultMap>
-
- <select id="findStudentByid" resultMap="studentMap" >
- SELECT s.id,s.no,s.name,s.gender,g.name gname,account
- FROM student s LEFT JOIN grade g ON s.gradeid=g.id
- LEFT JOIN ADMIN a ON s.adminid=a.id
- where s.id=#{id}
- select>
在数据查询中为一对多时collection标签
一个年级的学生

- select id="findStudentList1" resultType="arraylist" resultMap="finddrade">
- select * from student
- select>
-
- <resultMap id="finddrade" type="student">
- <result column="id" property="id">result>
- <result column="name" property="name">result>
- <result column="gender" property="gender">result>
- <association property="grade" select="findgrade" javaType="Grade" column="gradeid">
- association>
- resultMap>
-
- <select id="findgrade" resultType="Grade">
- select * from grade where id=#{gradeid}
- select>
一对多,嵌套查询
- <select id="findgradeStudent1" resultMap="gradeMap1" resultType="arraylist">
- SELECT
- g.*
- FROM
- grade g
- select>
-
- <resultMap id="gradeMap1" type="Grade">
- <id column="id" property="id">id>
- <result column="name" property="name">result>
- <collection property="students" javaType="java.util.ArrayList" ofType="Student"
- //类中的集合属性名 该属性集合的类型 该属性集合的类型
- select="findstudentBygradeId" column="id">
- //对应的嵌套语句 传入嵌套语句中的值
- collection>
- resultMap>
-
- <select id="findstudentBygradeId" resultType="Student">
- select id,name from student where gradeid=#{id}
- select>