Mybits的xml配置
- .创建maven工程
- 创建实体类
- 编写持久层接口 UserDao
4. `package com.huang.dao;
import com.huang.domain.QueryVo;
import com.huang.domain.User;
import java.util.List;
public interface UserDao {
/**
* 查询所有
* @return
*/
public List<User> findAll();
void saveUser(User user);
void updateUser(User user);
void deleteUser(int uid);
User findById(int id);
List<User> findByName(String username);
int findTotal();
List<User> findByVo(QueryVo vo);
}
`
- 编写持久层接口的映射文件 IUserDao.xml
- `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.huang.dao.UserDao">
<select id="findAll" resultType="com.huang.domain.User">
select * from user
</select>
<insert id="saveUser" parameterType="com.huang.domain.User">
insert into user (username,birthday,sex,address)values(#{username},#{birthday},#{sex},#{address})
</insert>
<update id="updateUser" parameterType="com.huang.domain.User">
update user set username=#{username},birthday= #{birthday},sex=#{sex},address=#{address} where id =#{id}
</update>
<delete id="deleteUser" parameterType="Integer">
delete from user where id =#{uid}
</delete>
<select id="findById" parameterType="int" resultType="com.huang.domain.User">
select * from user where id = #{id}
</select>
<select id="findByName" parameterType="String" resultType="com.huang.domain.User">
select * from user where username like #{name}
</select>
<select id="findTotal" resultType="int">
select count(*) from user
</select>
<select id="findByVo" parameterType="com.huang.domain.QueryVo" resultType="com.huang.domain.User">
select * from user where username like #{user.username}
</select>
</mapper>`
- 编写 SqlMapConfig.xml 配置文件
- `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置环境-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据库连接池-->
<dataSource type="POOLED">
<!-- 配置数=数据库连接的4个信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/day01?serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value="huang100"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置,映射文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/huang/dao/UserDao.xml"></mapper>
</mappers>
</configuration>`
编写测试类
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建 SqlSessionFactory 的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3.使用构建者创建工厂对象 SqlSessionFactory
SqlSessionFactory factory = builder.build(in);
//4.使用 SqlSessionFactory 生产 SqlSession 对象
SqlSession session = factory.openSession();
//5.使用 SqlSession 创建 dao 接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//6.使用代理对象执行查询所有方法
List<User> users = userDao.findAll();
for(User user : users) {
System.out.println(user);
}
//7.释放资源
session.close();
in.close();
基于注解方式的配置
- 在持久层接口中添加注解
- public interface IUserDao {
/**
- 查询所有用户
- @return
*/
@Select("select * from user")
List<User> findAll();
}
- 修改 SqlMapConfig.xml
- <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置环境-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据库连接池-->
<dataSource type="POOLED">
<!-- 配置数=数据库连接的4个信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/day01?serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value="huang100"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置,映射文件指的是每个dao独立的配置文件-->
<mappers>
<mapper class="com.huang.dao.UserDao"></mapper>
</mappers>
</configuration>