代码下载:
1.创建javaweb动态项目
2.导jar包
3.创建实体类(User)-domian
4.创建数据库
5.配置xml文件(mybatis-config)
- .复制粘贴mybatis.pdf中的内容
- .进行xml catalog配置,让其能够有提示
1.复制config那段,然后进行xml catalog
2.选择web-inf下的config,然后public id
3.粘贴复制的那一段 - 修改“development”为“mysqlDev”
- .修改driver中的value中为:mybatis中的jdbc的Driver.class
- 修改url中的value中为:jdbc:mysql://localhost:3306/文件名
- .修改账号密码
- 配置映射
6.创建接口类(UserDao)-dao
1.实现增删改查
--------->2.保存:public void save(User user)
--------->3.修改:public void update(User user)
--------->4.删除:public void deleteById(User user)
--------->5.查询:
------------------>通过编号查询一个用户对象信息:public User findById(int id)
------------------>查询所有对象信息:public List findAll();
------------------>通过姓名和性别来查询所有对象信息:public List findByNameAndGender();
7.创建xml文件(UserMapper)-dao
--------->1.复制粘贴mybatis.pdf中的内容
--------->2.进行xml catalog配置,让其能够有提示
------------------>1.复制mapper那段,然后进行xml catalog
------------------>2.选择web-inf下的mapper,然后url
------------------>3.粘贴复制的那一段
--------->3.修改namespace中的值为对应接口类的完整路径
--------->4.完成增删改查功能
------------------>1.其中id为对应接口类中的方法名称
------------------>2.其中parameterType:用来指定该抽象方法中参数的类型
8.编写测试类(mybatisTest)-test
--------->1.增加
复制粘贴pdf中的内容(sqlSessionFactory)-创建sqlSessionFactory对象
------------------->修改resource为mybatis-config.xml
--------->2.获取sqlSession对象
--------->3.通过sqlSession来获取一个接口的对应代理实现
--------->4.调用接口中的方法
--------->5.调用sqlSession中的提交和释放
9.创建工具类(SqlSessionFactoryUtils)-utils
Private static SqlSessionFactory sqlSessionFactory;
Private SqlSessionFactoryUtils(){}
Static {
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200809200223560.png)
}
Public static SqlSession getSqlSession(){
Return sqlSessionFactory.openSession();
}
10.编写UserMapper.xml和测试类
--------->1.查询
根据id查询:
<select id=”findById” parameterType=””>
select * from tb where id=#{id}
</select>
测试类:
@Test
Public void testFindById(){
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.findById(1);
sqlSession.close();
}
查询所有信息:
<select id=”findAll” resultMap=”map”>
Select * from tb
</select>
<resultMap type=”” id=”map”>
<id column=”表主键名” property=”实体类属性名”>
<result colunm=”” property=””>
</resultMap>
测试类:
@Test
Public void testFindById(){
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> list = userDao.findAll();
for(User user:list){
System.out.println(user);
}
sqlSession.close();
}
根据姓名和性别查询:
<select id=”findByNameAndGender” resultType=””>
select * from tb where name like contat(‘%’,#{name},’%’) and gender=#{sex}
</select>
注:
UserDao.java中对应的查询语句:
public List<User> findByNameAndGender(@Param("name")String name,@Param("sex")Boolean gender)
测试类:
@Test
Public void testFindById(){
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> list = userDao.findByNameAndGender(“杨”,true);
for(User user:list){
System.out.println(user);
}
sqlSession.close();
}
--------->2.更新
<update id=”update” parameterType=”int” resultType=””>
update tb set name=#{name},... where id=#{id}
</update>
测试类:
@Test
Public void testUpDate(){
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.findById(1);
user.setName(“韩”);
user.setMobile(“12121212123”);
userDao.update(user);
sqlSession.close();
}
--------->3.删除
<delete id=”deleteById parameterType=”int”>
delete from tb where id=#{id}
</delete>
测试类:
@Test
Public void testUpDate(){
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.deleteById(1);
sqlSession.close();
}