新建maven工程
数据库用mysql5
SQL:
CREATE TABLE user
(
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO user VALUES ('1', 'admin', 'admin');
pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId> mysql-connector-java</artifactId>
<version>5.0.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
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>
<typeAliases>
<typeAlias alias="User" type="model.User" />
</typeAliases>
<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" />
<property name="username" value="root" />
<property name="password" value="root123" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="model/User.xml" />
<mapper resource="dao/User.xml" />
</mappers>
</configuration>
User.java:
package model;
public class User {
private int id;
private String username;
private String password;
public User(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String toString(){
return "User [id = "+ id +" , username = "+ username +"]" + " , password = "+ password;
}
}
User.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="model.User">
<select id="selectUserByID" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="model.User" flushCache="true">
INSERT INTO user (id,username,password) VALUES
(#{id},#{username},#{password})
</insert>
<update id="updateUser" parameterType="model.User">
UPDATE user SET
password=#{password} WHERE id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE
id=#{userId}
</delete>
</mapper>
测试代码:
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
public void testUser1() {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = (User) session.selectOne("model.User.selectUserByID", 1);
System.out.println(user.getUsername());
System.out.println(user.getPassword());
} finally {
session.close();
}
}
接口方式:
package dao;
import model.User;
public interface IUserOperation {
public User selectUserByID(int id);
public User selectUser(User user);
public void insertUser(User user);
public void updateUser(User user);
public void deleteUser(int userId);
}
<?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="dao.IUserOperation">
<select id="selectUserByID" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="model.User" flushCache="true">
INSERT INTO user (id,username,password) VALUES
(#{id},#{username},#{password})
</insert>
<update id="updateUser" parameterType="model.User">
UPDATE user SET password=#{password} WHERE id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id=#{userId}
</delete>
</mapper>
测试代码:
public void testUser2() {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(1);
System.out.println(user.getUsername());
System.out.println(user.getPassword());
} finally {
session.close();
}
}
增删改查测试代码:
public void testUser1Insert() {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = new User();
user.setId(2);
user.setUsername("user2");
user.setPassword("pass2");
session.insert("model.User.insertUser", user);
session.commit();
} finally {
session.close();
}
}
public void testUser1Update() {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = new User();
user.setId(2);
user.setUsername("user02");
user.setPassword("pass02");
session.update("model.User.updateUser", user);
session.commit();
} finally {
session.close();
}
}
public void testUser1Delete() {
SqlSession session = sqlSessionFactory.openSession();
try {
session.delete("model.User.deleteUser", 2);
session.commit();
} finally {
session.close();
}
}
public void testUser2Insert() {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = new User();
user.setId(2);
user.setUsername("user2");
user.setPassword("pass2");
userOperation.insertUser(user);
session.commit();
} finally {
session.close();
}
}
public void testUser2Update() {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = new User();
user.setId(2);
user.setUsername("user02");
user.setPassword("pass02");
userOperation.updateUser(user);
session.commit();
} finally {
session.close();
}
}
public void testUser2Delete() {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
userOperation.deleteUser(2);
session.commit();
} finally {
session.close();
}
}