mysql mysql-connector-java 5.1.46 org.mybatis mybatis 3.5.7 com.google.guava guava 20.0 maven_base src/main/java ** int save(User user); int delete(Integer id); int update(User user); User findById(Integer id); List getList(User user); }
xml:
测试以及使用INSERT INTO t_user(username,email,addr) VALUES(#{username},#{email},#{addr}) delete from t_user where id = #{id} UPDATE t_user SET username = #{username}, email = #{email}, addr = #{addr} WHERe id = #{id}
public class DruidTest {
static SqlSessionFactory sqlSessionFactory = null;
static {
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
//创建SqlSessionFactory对象
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void getList() {
//每个线程都拥有一个sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
List userList = sqlSession.selectList("com.dao.UserMapper.getList", new User() {{
setUsername("cyz");
}});
System.out.println(userList);
sqlSession.close();
}
@Test
public void insert(){
//每个线程都拥有一个sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.insert("com.dao.UserMapper.save", new User() {{
setUsername("b");
setEmail("2@qq.com");
setAddr("quanzhou");
}});
sqlSession.commit();
sqlSession.close();
}
@Test
public void delete(){
//每个线程都拥有一个sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.delete("com.dao.UserMapper.delete", 1);
sqlSession.commit();
sqlSession.close();
}
@Test
public void findById(){
//每个线程都拥有一个sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.selectOne("com.dao.UserMapper.findById", 1);
sqlSession.close();
}
@Test
public void update(){
//每个线程都拥有一个sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.update("com.dao.UserMapper.update", new User() {{
setId(1);
setUsername("a");
setEmail("2@qq.com");
setAddr("xiamen");
}});
sqlSession.commit();
sqlSession.close();
}
}
注解代替xml(不推荐)
@Insert@Delete@Update@Select
一般就是写在dao接口对应方法上方
@Insert("INSERT INTO t_user(username,email,addr) VALUES(#{username},#{email},#{addr})")
int save(User user);
还有Provider注解:
@InsertProvider,@DeleteProvider,@UpdateProvider, @@SelectProvider
就举个插入例子:
//type 指定Provider类,method指定对应方法
@InsertProvider(type = UserProvider.class, method = "insert")
int save(User user);
public class UserProvider {
//插入
public String insert(User user) {
String s = String.format("INSERT INTO t_user(username,email,addr) VALUES('%s','%s','%s')"
, user.getUsername()
, user.getEmail()
, user.getAddr());
System.out.println(s);
return s;
}
}



