工具:
idea
环境:
mysql
步骤:
1.导入相关的jar包
2.将需要的包结构建好
3.配置文件中,配置数据库相关信息,引入mapper.xml文件
4.写sql语句
5.测试
准备工作先做好,导jar包,需要的项目结构
1.导入相关的jar包
这里通过maven来管理jar包,在pom.xml中进行配置
需要的jar包
mysql的包
mybayis的包
junit的测试包
4.0.0
org.fh
mybaits_first
1.0-SNAPSHOT
war
mybaits_first
http://www.example.com
UTF-8
1.7
1.7
4.1.7.RELEASE
4.3.11.Final
org.mybatis
mybatis
3.4.6
mysql
mysql-connector-java
5.1.6
junit
junit
4.12
2.将需要的包结构建好
1.maper类
2.实体类
3.SqlMapConfig.xml文件,里边配置数据库相关的,包括引入相关的mapper文件
4.相关的mapper.xml文件
5.测试类
3.配置文件中,配置数据库相关信息,引入mapper.xml文件
准备工作已做好,开始做基础的增删改查
单个增加
UserMapper.java中,写一个新增的有参数,无返回值的方法
userMapper.xml文件
超级全面的注释,看不懂多看几遍,绝对明白了
userMapper.xml文件代码
select LAST_INSERT_ID()
insert into t_user_idea(user_id,user_name,user_sex) values
(#{userId},#{username},#{sex})
测试是否成功
UserMapperTest.java
@Test
public void insetUserTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
// //进行赋值
User user = new User();
// dept.setDeptId(1);
user.setUsername("部门22");
user.setSex(1);
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
int count = sqlSession.insert("com.fh.mapper.UserMapper.insertUser",user);
//手动提交事务,因为mysql自动提交时间不确定。
sqlSession.commit();
System.out.println("插入数据条数:"+count);
//关闭session会话
sqlSession.close();
}
单个插入完成
UserMapper.java
//批量插入
int batchInsertUser(List userList);
insert into t_user_idea(user_id,user_name,user_sex) values
(#{user.userId},#{user.username},#{user.sex})
测试
UserMapperTest.java
/**
* 批量插入
* @throws IOException
*/
@Test
public void batchInsertUserTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
// //进行赋值
List userList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setUsername("username" + i);
user.setSex(1);
userList.add(user);
}
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
int count = sqlSession.insert("com.fh.mapper.UserMapper.batchInsertUser",userList);
//手动提交事务,因为mysql自动提交时间不确定。
sqlSession.commit();
System.out.println("插入数据条数:"+count);
//关闭session会话
sqlSession.close();
}
批量插入完成
未完待更新
UserMapper.java
//通过ID进行查询
User findUserById(Integer userId);
userMapper.xml
UserMapperTest.java
@Test
public void findUserByIdTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
//这里调用的是selectOne方法,只能查询一条指定的数据,
// 如果用它查询多条数据,会报异常(查询多条要用selectList)
User user = sqlSession.selectOne("com.fh.mapper.UserMapper.findUserById",11);
System.out.println(user);
//关闭session会话
sqlSession.close();
}
结果:
UserMapper.java
//查询所有信息
User findAllUser();
userMapper.xml
测试
UserMapperTest.java
/**
* 查询所有信息
* @throws IOException
*/
@Test
public void findAllUserTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
//这里调用的是selectOne方法,只能查询一条指定的数据,
// 如果用它查询多条数据,会报异常(查询多条要用selectList)
List userList = sqlSession.selectList("com.fh.mapper.UserMapper.findAllUser");
for (User user:userList) {
System.out.println(user);
}
//关闭session会话
sqlSession.close();
}
UserMapper.java
//通过name进行模糊查询
User findUserByUserName(String username);
userMapper.xml
UserMapperTest.java
/**
* 通过name进行模糊查询
* @throws IOException
*/
@Test
public void findUserByUserNameTest() throws IOException {
String resource="SqlMapConfig.xml";
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//连接上数据库
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//开启会话
SqlSession sqlSession = factory.openSession();
//第一个参数定位带ClothingMapper.xml的findClothingByName方法
//第二个参数的是findClothingByName方法的参数
List userList = sqlSession.selectList("com.fh.mapper.UserMapper.findUserByUserName","2");
for (User user:userList) {
System.out.println(user);
}
System.out.println(userList.size());
}
UserMapper.java
//通过username和sex进行模糊查询
User queryUserByNameAndSexList(User user);
userMapper.xml
测试
UserMapperTest.java
/**
* 通过username和sex进行条件查询
* @throws IOException
*/
@Test
public void queryUserByNameAndSexListTest() throws IOException {
String resource="SqlMapConfig.xml";
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//连接上数据库
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//开启会话
SqlSession sqlSession = factory.openSession();
//模糊查询的条件
User user = new User();
user.setUsername("1");
user.setSex(1);
//第一个参数定位带ClothingMapper.xml的findClothingByName方法
//第二个参数的是findClothingByName方法的参数
List userList = sqlSession.selectList("com.fh.mapper.UserMapper.queryUserByNameAndSexList",user);
for (User user1:userList) {
System.out.println(user1);
}
System.out.println(userList.size());
}
UserMapper.java
//通过ID删除数据
void deleteUserById(Integer userId);
userMapper.xml
delete from t_user_idea where user_id = #{userId}
测试
UserMapperTest.java
/**
* 删除
* @throws IOException
*/
@Test
public void deleteDeptTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
//这里调用的是selectOne方法,只能查询一条指定的数据,
// 如果用它查询多条数据,会报异常(查询多条要用selectList)
sqlSession.delete("com.fh.mapper.UserMapper.deleteUserById",8);
sqlSession.commit();
//关闭session会话
sqlSession.close();
}
UserMapper.java
//修改
void updateUser(User user);
userMapper.xml
update t_user_idea
set user_name=#{username},user_sex=#{sex}
where user_id = #{userId}
测试
UserMapperTest.java
/**
* 修改
* @throws IOException
*/
@Test
public void updateDeptTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
User user = new User();
//必须写id,这样才可以修改
user.setUserId(7);
user.setUsername("张三");
user.setSex(0);
sqlSession.update("com.fh.mapper.UserMapper.updateUser",user);
sqlSession.commit();
//关闭session会话
sqlSession.close();
}
UserMapper.java
//批量删除
int deleteUserByIds(List idList);
userMapper.xml
delete from t_user_idea
where user_id in
#{id}
测试
UserMapperTest.java
/**
* 批量删除
*/
@Test
public void deleteUserByIdsTest() throws IOException {
//从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)
String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建工厂(连接mysql数据库)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建会话
SqlSession sqlSession=factory.openSession();
ArrayList idList = new ArrayList<>();
idList.add(13);
idList.add(14);
idList.add(15);
//第一个参数:所调用的sql语句:namespace+‘.’+SqlID
//第二个参数:传入的参数
//int row = sqlSession.deleteUserByIds("com.fh.mapper.UserMapper.deleteUserById",idList);
int row = sqlSession.delete("com.fh.mapper.UserMapper.deleteUserByIds",idList);
sqlSession.commit();
//关闭session会话
sqlSession.close();
}