使用总结:
1、全局配置文件SqlMap.xml
<configuration>
<!-- 引入数据库配置文件 -->
<properties resource="jdbc.properties"></properties>
<!-- 定义别名 -->
<typeAliases>
<typeAlias type="bean.User" alias="user"/>
</typeAliases>
<!-- 配置数据库信息 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 引入映射文件 -->
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
</configuration>
2、Dao中为每一个接口配置一个xml文件
UserMapper.java:
public interface UserMapper {
public User getOneById(Long id);
public void save(User user);
public void delete(Long id);
public void update(User user);
}
UserMapper.xml:
<!-- namespace:接口的全限定名 -->
<mapper namespace="dao.UserMapper">
<!--
id:方法名
parameterType:形参类型
resultType:返回值类型
-->
<select id="getOneById" parameterType="java.lang.Long" resultType="user">
select * from user where id=#{id}
</select>
<insert id="save" parameterType="user" useGeneratedKeys="true">
<!--
keyProperty:主键对应的pojo的属性
order:sql语句执行的时机
resultType:sql语句的结果类型
LAST_INSERT_ID():自增主键值
-->
<selectKey keyProperty="id" resultType="java.lang.Long">
select LAST_INSERT_ID()
</selectKey>
insert into user(name,age) values(#{name},#{age})
</insert>
<delete id="delete" parameterType="java.lang.Long">
delete from user where id=#{id}
</delete>
<update id="update" parameterType="user">
update user set name=#{name},age=#{age} where id=#{id}
</update>
</mapper>
3)Service中调用Dao
@Service
@Transactional
public class UserMapperService{
private SqlSessionFactory sqlSessionFactory;
@Before
public void setup() throws IOException{
//1、加载配置文件
String resource="SqlMap.xml";
InputStream inputStream =
Resources.getResourceAsStream(resource);
//2、创建SqlSessionFactory
sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
}
public User getOne() throws IOException {
//3、创建SqlSession
SqlSession sqlSession =
sqlSessionFactory.openSession();
//4、创建代理对象(接口的实现类对象)
UserMapper userMapper =
sqlSession.getMapper(UserMapper.class);
//5、查询
User user=userMapper.getOneById(2L);
//6、关闭SqlSession
sqlSession.close();
return user;
}
public void save(){
SqlSession sqlSession =
sqlSessionFactory.openSession();
UserMapper userMapper =
sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setName("赵大宝");
user.setAge(29);
userMapper.save(user);
sqlSession.commit();
sqlSession.close();
}
}