package com.mybatis.inteface;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.mybatis.pojo.User;
public interface UserInterface {
//根据表名查询用户信息(直接使用注解指定传入参数名称)
//There is no getter for property named 'tableName' in 'class java.lang.String'
//public List queryUserByTableName(String tableName);
public List queryUserByTableName(@Param("tableName") String tableName);
//使用注解指定传入参数名称
//public User login(String userName, String password);
public User login(@Param("userName") String userName, @Param("password") String password);
public User queryUserById(Integer id);
public List queryUserByIds(List ids);
public List queryUserAll();
public void insertUser(User user);
public void insertUserList(List users);
public void updateUser(User user);
public void updateUserList(List users);
public void deleteUserById(Integer id);
}
insert into tb_user
(id,user_name,password,name,age,sex,birthday,created,updated)
values
(#{id},#{userName},#{password},#{name},#{age},#{sex},#{birthday},sysdate,sysdate)
insert into tb_user
(id,user_name,password,name,age,sex,birthday,created,updated)
select id,user_name,password,name,age,sex,birthday,created,updated
from (
select #{item.id} as id,#{item.userName} as user_name,#{item.password} as password,
#{item.name} as name,#{item.age} as age,#{item.sex} as sex,
#{item.birthday} as birthday,sysdate as created,sysdate as updated
from dual
) A
update tb_user
user_name = #{userName},
password = #{password},
name = #{name},
age = #{age},
sex = #{sex},
birthday = #{birthday},
updated = sysdate,
where id = #{id}
update tb_user
user_name = #{item.userName},
password = #{item.password},
name = #{item.name},
age = #{item.age},
sex = #{item.sex},
birthday = #{item.birthday},
updated = sysdate,
where id = #{item.id}
delete from tb_user where id=#{id}
package com.mybatis.pojo;
import java.util.Date;
public class User {
private Integer id;
private String userName;//数据库字段名user_name
private String password;
private String name;
private Integer age;
private Integer sex;
private Date birthday;
private String created;
private String updated;
public Integer getId() {
return id;
}
public void setId(Integer 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 getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getCreated() {
return created;
}
public void setCreated(String created) {
this.created = created;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password="
+ password + ", name=" + name + ", age=" + age + ", sex=" + sex
+ ", birthday=" + birthday + ", created=" + created
+ ", updated=" + updated + "]";
}
}
package com.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import com.mybatis.inteface.UserInterface;
import com.mybatis.pojo.User;
public class UserDaoTest {
public UserInterface userInterface;
@Before
public void setUp(){
try {
// 指定配置文件
String resource = "mybatis-config.xml";
// 读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
// 构建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(true);
// 1. 映射文件的命名空间(namespace)必须是mapper接口的全路径
// 2. 映射文件的statement的id必须和mapper接口的方法名保持一致
// 3. Statement的resultType必须和mapper接口方法的返回类型一致
// 4. statement的parameterType必须和mapper接口方法的参数类型一致(不一定)
this.userInterface = sqlSession.getMapper(UserInterface.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testQueryUserByTableName() {
List userList = this.userInterface.queryUserByTableName("tb_user");
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void testLogin() {
System.out.println(this.userInterface.login("jingjing", "123456"));
}
@Test
public void testQueryUserById() {
System.out.println(this.userInterface.queryUserById(2));
}
@Test
public void testQueryUserByIds() {
List ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
List userList = this.userInterface.queryUserByIds(ids);
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void testQueryUserAll() {
List userList = this.userInterface.queryUserAll();
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void testInsertUser() {
User user = new User();
user.setId(3);
user.setAge(20);
user.setBirthday(new Date());
user.setName("大神");
user.setPassword("123456");
user.setSex(2);
user.setUserName("bigGod222");
this.userInterface.insertUser(user);
System.out.println(user.getId());
}
@Test
public void testInsertUserList() {
User user10 = new User();
user10.setId(10);
user10.setAge(20);
user10.setBirthday(new Date());
user10.setName("大神");
user10.setPassword("123456");
user10.setSex(2);
user10.setUserName("bigGod111");
User user20 = new User();
user20.setId(20);
user20.setAge(40);
user20.setBirthday(new Date());
user20.setName("大力神");
user20.setPassword("123456");
user20.setSex(2);
user20.setUserName("bigGod222");
List users = new ArrayList();
users.add(user10);
users.add(user20);
this.userInterface.insertUserList(users);
}
@Test
public void testUpdateUser() {
User user = new User();
user.setId(1);
user.setBirthday(new Date());
user.setName("静静");
user.setPassword("123456");
user.setSex(0);
user.setUserName("Jinjin");
this.userInterface.updateUser(user);
}
@Test
public void testupdateUserList() {
User user1 = new User();
user1.setId(1);
user1.setName("name11");
user1.setUserName("username11");
User user2 = new User();
user2.setId(2);
user2.setName("name22");
user2.setUserName("username22");
List users = new ArrayList();
users.add(user1);
users.add(user2);
this.userInterface.updateUserList(users);
}
@Test
public void testDeleteUserById() {
this.userInterface.deleteUserById(1);
}
}
log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%l] [%p]:%m%n