Mybatis使用(一)
下面就实现用户的增删改查来举例说明mybatis的使用
a}导入相关jar包
还有数据库驱动包
需要jar包的同志评论里打call。。。
b)编写核心配置文件mybatis.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>
<!-- 可配置多个环境environment,每个environments对应一个SqlSessionFactory
default 指向默认环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- POOLED:以线程池方式创建连接 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="*******" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- sql语句的映射文件 -->
<mapper resource="com/bean/mapper.xml" />
</mappers>
</configuration>
c)编写工具类mybatisulit.java
package com.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtil {
public static SqlSessionFactory getSqlSessionFactory() throws IOException{
String resource = "mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(resource); //解析mybatis.xml文件
SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
public static SqlSession getSqlSession() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
return sqlSessionFactory.openSession(); //获取sqlSession对象
}
}
c)编写实体类User.java
package com.bean;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
d)编写sql语句的映射文件mapper.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">
<!--
resultType:指返回对象的类型
parameterType:指sql语句的参数类型
select:查询
insert:插入
update:更新
delete:删除
-->
<mapper namespace="com.bean.Usermapper">
<select id="selectAll" resultType="com.bean.User">
select * from user
</select>
<select id="selectUser" resultType="com.bean.User">
select * from user where id = #{id}
</select>
<insert id="insertUser" parameterType="com.bean.User" useGeneratedKeys="true">
insert into user(name,age) values (#{name},#{age})
</insert>
<update id="updateUser" parameterType="com.bean.User">
update user set name=#{name} where id=#{id}
</update>
<delete id="deleteUser" >
delete from user where id = #{id}
</delete>
</mapper>
e)编写dao操作类UserDao.java
package com.dao;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.bean.User;
import com.util.MybatisUtil;
public class UserDao {
public List getAll() throws IOException{ //查询全部
SqlSession sqlSession = MybatisUtil.getSqlSession();
List<User> user = sqlSession.selectList("com.bean.Usermapper.selectAll");//获取路径
sqlSession.close();
return user;
}
public User getbyId(int id) throws IOException{//查询一个
SqlSession sqlSession = MybatisUtil.getSqlSession();
User user = sqlSession.selectOne("com.bean.Usermapper.selectUser", id);
sqlSession.close();
return user;
}
public void insert(User user) throws IOException{//插入
SqlSession sqlSession = MybatisUtil.getSqlSession();
sqlSession.insert("com.bean.Usermapper.insertUser", user);
sqlSession.commit(); //提交确认
sqlSession.close();
}
public void update(User user) throws IOException{//更新
SqlSession sqlSession = MybatisUtil.getSqlSession();
sqlSession.update("com.bean.Usermapper.updateUser", user);
sqlSession.commit();//提交确认
sqlSession.close();
}
public void delete(int id) throws IOException{//删除
SqlSession sqlSession = MybatisUtil.getSqlSession();
sqlSession.delete("com.bean.Usermapper.deleteUser", id);
sqlSession.commit();//提交确认
sqlSession.close();
}
}
f)编写测试类Test.java测试实现效果
package com.test;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.bean.User;
import com.dao.UserDao;
import com.util.MybatisUtil;
public class Test {
public static void main(String[] args) throws IOException {
// SqlSession sqlSession = MybatisUtil.getSqlSession();
// User user = sqlSession.selectOne("com.bean.Usermapper.selectUser", 2);
//System.out.println(user.getId()+"...."+user.getName()+"...."+user.getAge());
//sqlSession.close();
// System.out.println(userdao.getbyId(1));
UserDao userdao = new UserDao();
User user = new User();
user.setName("张三");
user.setAge(18);
userdao.insert(user);
System.out.println("插入成功");
User user1 = userdao.getbyId(7);
user1.setName("李四");
userdao.update(user1);
System.out.println("修改成功");
userdao.delete(11);
System.out.println("ok");
List<User> list = userdao.getAll();
System.out.println("查询结果");
for(User u:list){
System.out.println(u);
}
}
}
效果图