mybatis-config.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>
<properties resource="jdbc.properties" />
<settings>
<setting name="lazyLoadingEnabled" value="true" />
<setting name="aggressiveLazyLoading" value="false" />
</settings>
<!--设置别名-->
<typeAliases>
<typeAlias alias="UserInfo" type="com.ldu.po.UserInfo" />
</typeAliases>
<!--配置数据库信息-->
<environments default="development">
<environment id="mysql">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${database.driver}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/ldu/mapper/userinfo.xml" />
</mappers>
</configuration>
jdbc.properties
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:3306/myssm?useUnicode=true&characterEncoding=utf-8
database.username=root
database.password=123456
userinfo.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">
<!--将数据库中的字段和po类中的属性映射-->
<mapper namespace="com.ldu.mapper.UserInfoMapper">
<!--UserInfo为po类,前面设置了别名-->
<resultMap type="UserInfo" id="userMap">
<id property="id" column="user_id"></id>
<result property="userName" column="user_name"></result>
<result property="sex" column="user_sex"></result>
</resultMap>
<!--查询所有 -->
<!-- <select id="selectUser" resultMap="userMap">
select * from user_info
</select> -->
<!--条件查询 -->
<select id="selectUser" parameterType="UserInfo" resultMap="userMap">
select * from user_info where 1=1
<if test="id!=null">
and user_id = #{id}
</if>
</select>
<!--添加数据 -->
<insert id="insertUser" parameterType="UserInfo">
insert into user_info
(user_name,user_sex) values(#{userName},#{sex})
</insert>
<!--修改数据 -->
<update id="updateUser" parameterType="UserInfo">
update user_info set
user_name=#{userName},user_sex=#{sex} where user_id=#{id}
</update>
<!--删除数据 -->
<delete id="deleteUser" parameterType="Integer">
delete from user_info
where user_id=#{id}
</delete>
UserInfoMapper.java
//Mapper接口
public interface UserInfoMapper {
public List<UserInfo> selectUser(UserInfo user);
public int insertUser(UserInfo user);
public int updateUser(UserInfo user);
public int deleteUser(int id);
}
DBFactory.java
产生sqlSession的类
public class DBFactory {
private static SqlSessionFactory sqlSessionFactory=null;
static{
try {
String resource="mybatis-config.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream,"mysql");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
测试
public class UserInfoTest {
SqlSession session=null;
UserInfoMapper mapper=null;
@Before
public void beforeTest(){
session=DBFactory.getSqlSession();
mapper=session.getMapper(UserInfoMapper.class);
}
@After
public void afterTest(){
session.close();
}
@Test
public void selectList(){
UserInfo fuser=new UserInfo();
fuser.setId(7);
List<UserInfo> list = mapper.selectUser(null);
for(UserInfo u:list){
System.out.println(u);
}
}
@Test
public void addUser(){
UserInfo iuser=new UserInfo();
iuser.setUserName("羽");
iuser.setSex("男");
try {
int count =mapper.insertUser(iuser);
if(count>0){
session.commit();
System.out.println("插入成功");
}
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}
}
@Test
public void updateUser(){
UserInfo uuser=new UserInfo();
uuser.setId(6);
uuser.setUserName("叶");
uuser.setSex("男");
try {
int count=mapper.updateUser(uuser);
if(count>0){
session.commit();
System.out.println("修改成功");
}
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}
}
@Test
public void delUser(){
int id=6;
try {
int count =mapper.deleteUser(id);
if(count>0){
session.commit();
System.out.println("删除成功");
}
} catch (Exception e) {
session.rollback();
e.printStackTrace();
}
}
}