Mybatis 的使用 (1)

1、首先創建Maven工程並倒入需要的jar包(pom.xml中配置):

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-mxj -->

            <dependency>
                      <groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.39</version><!--$NO-MVN-MAN-VER$ -->
		</dependency>

2、創建Mybatis配置文件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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis_demo" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/entity/UserMapper.xml"/>
</mappers>

</configuration>

3、創建實體類以及對應的數據庫表格:

實體類(其餘方法自己補充):

public class User {

        private Integer id;

        private String name;

private Integer age;

private String address;

}

表格:

CREATE TABLE `t_user` (
  `id` int(10) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  `age` int(2) default NULL,
  `address` varchar(128) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


4、編寫操作數據的mapper文件(UserMapper.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="mybatis.entity.User">
<select id="queryUserById" resultType="mybatis.entity.User">
select * from t_user where id=#{id}
</select>
<select id="queryUsers" resultType="mybatis.entity.User">
select * from t_user
</select>
<insert id="insertUser" parameterType="mybatis.entity.User">
insert into t_user(name,age,address) 
values
(#{name},#{age},#{address})
</insert>
<update id="modifyUser" parameterType="mybatis.entity.User">
update t_user
set name = #{name},
age = #{age},
address = #{address}
where id = #{id}
</update>
<delete id="deleteUser" >
delete from t_user where id=#{id}
</delete>

</mapper>

5、最後編寫測試類:

public class UserMethodTest {
SqlSession sqlSession = null;
public static final String NAMESPACE="mybatis.entity.User";

@Before
public void prepareResource() throws IOException {
Reader configReader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(configReader);
sqlSession = sessionFactory.openSession();
}
@Test
@Ignore
public void testQuery() {
User user = sqlSession.selectOne(NAMESPACE+".queryUserById", 1);
System.out.println("user is :"+user);

sqlSession.close();
}
@Ignore
@Test
public void testQueryList() {
List<User> userList = sqlSession.selectList(NAMESPACE+".queryUsers");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
@Ignore
public void insertUser(){
User user = new User("wangwu", 33, "shanghai");
int insert = sqlSession.insert(NAMESPACE+".insertUser", user);
sqlSession.commit();
System.out.println(insert);
sqlSession.close();
}
@Test
@Ignore
public void modifyUser(){
User user = new User("王五", 33, "上海");
user.setId(4);
int insert = sqlSession.update(NAMESPACE+".modifyUser", user);
sqlSession.commit();
System.out.println(insert);
sqlSession.close();
}
@Test
public void deleteUser(){
int delete = sqlSession.delete(NAMESPACE+".deleteUser", 4);
sqlSession.commit();
System.out.println(delete);
sqlSession.close();
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章