目录
MyBatis开发步骤:
①添加jar包
引入MyBatis的核心包:mybatis-3.4.2.jar
注意:如果底层采用的是MySQL数据库,那么还需要将MySQL数据库的驱动JAR包;如果采用其他类型的数据库,则同样需要将对应类型的数据库驱动包添加到应用程序的类路径中。
②创建user数据表
create database users character set utf8; use users; create table user ( id int primary key AUTO_INCREMENT, username varchar(50) not null, password varchar(50) not null ); insert into user values(null,'admin','123'); insert into user values(null,'test1','123'); insert into user values(null,'test2','123'); insert into user values(null,'test3','123'); insert into user values(null,'test4','123');
③编写User实体类
public class User { private int id; private String username; private String password; //省略get个set方法 //省略toString()方法 }
④编写映射文件UserMapper.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="userMapper"> <select id="findAll" resultType="com.pojo.User"> select * from User </select> </mapper>
说明:
1.namespace="userMapper" 是命名空间,与id一起组成标识。
2.<select> 是查询操作,对应的还有insert,update,delete标签
⑤编写mybatis核心文件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> <!--配置当前使用的环境是哪一个 --> <environments default="default1"> <!-- 声明可以使用的环境 --> <environment id="default1"> <!-- 使用原生jdbc事务 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置JDBC对象的连接资源 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/users" /> <property name="username" value="root" /> <property name="password" value="1234" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mapper/UserMapper.xml" /> </mappers> </configuration>
⑥编写测试
//加载核心配置文件 InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml"); //获得sqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); //获得sqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //执行sql语句 List<User> userList = sqlSession.selectList("userMapper.findAll"); //打印结果 System.out.println(userList); //释放资源 sqlSession.close();
注意: 上面代码对应导入的命名空间
import java.io.IOException; import java.io.InputStream; 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 com.pojo.User;
MyBatis的增删改查操作
1 MyBatis的插入数据操作
1)编写UserMapper映射文件
<insert id="add" parameterType="com.pojo.User"> insert into user values(#{id},#{username},#{password}) </insert>
2)编写插入实体User的代码
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = sqlSessionFactory.openSession(); User user = new User(); user.setUsername("张三"); user.setPassword("123"); int insert = sqlSession.insert("userMapper.add", user); System.out.println(insert); //提交事务 sqlSession.commit(); sqlSession.close();
3)插入操作注意问题
• 插入语句使用insert标签
• 在映射文件中使用parameterType属性指定要插入的数据类型
•Sql语句中使用#{实体属性名}方式引用实体中的属性值
•插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象);
•插入操作涉及数据库数据变化,所以要使用sqlSession对象显示的提交事务,即sqlSession.commit()
2 MyBatis的修改数据操作
1)编写UserMapper映射文件
<update id="update" parameterType="com.pojo.User"> update user set username=#{username},password=#{password} where id=#{id} </update>
2)编写修改实体User的代码
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = sqlSessionFactory.openSession(); User user = new User(); user.setId(1); user.setUsername("张三"); user.setPassword("123456"); int insert = sqlSession.update("userMapper.update", user); System.out.println(insert); //提交事务 sqlSession.commit(); sqlSession.close();