继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MyBatis实现基础增删改查的功能

雀雀you
关注TA
已关注
手记 2
粉丝 5
获赞 2

MyBatis编码的三种思路

1. 实体类+映射文件+基础配置文件+测试类

实体类

public class Users {

	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;
	}

}

映射文件
命名规则:表名+Mapper

<mapper namespace="bean.UsersMapper"><!-- 命名空间的名字为映射文件全路径 -->
  <select id="GetUserByID" parameterType="int" resultType="Users">
  	select * from users where id = #{id}
  </select>
</mapper>

基础配置文件

<configuration>

	<typeAliases>
		<typeAlias alias="Users" type="bean.Users"/>
	</typeAliases>
	
	<environments default="development">
		<environment id="development"><!-- 与environments中default的值保持一致 -->
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/frank"/>
				<property name="username" value="root"/>
				<property name="password" value="admin"/>
			</dataSource>
		</environment>
	</environments><!-- 基础环境配置 -->

	<mappers>
		<mapper resource="bean/usersMapper.xml"></mapper>
	</mappers><!-- 注册映射文件 -->

</configuration>

测试类

public class Test {

	public static void main(String[] args) throws IOException {
		
		//使用Resources类调用getResourceAsReader()加载基础配置文件
		//获得了一个Reader对象
		Reader is = Resources.getResourceAsReader("config.xml");
		
		//通过new SqlSessionFactoryBuilder()调用build()
		//获得了一个SqlSessionFactory对象
		SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);

		//创建能执行映射文件中sql语句的sqlSession
		//使用SqlSessionFactory的对象sf调用openSession()
		//获得一个SqlSession对象
		SqlSession session = sf.openSession();
		
		//使用SqlSession的对象session查询方法
		//第一个值是映射文件中sql语句的标识字符串,第二个值则是查询指定的ID
		Users u = session.selectOne("bean.UsersMapper.GetUserByID",1);
		System.out.println(u.getId());
		System.out.println(u.getName());
		System.out.println(u.getAge());
	}

}

2. 实体类+接口+注解+基础配置文件+测试类
实体类同上

接口结合注解

public interface IUsers {

	@Select("select * from users where id=#{id}")
	public Users select(int id);
	
}

基础配置文件中无须注册映射文件

测试类

public class Test {

	public static void main(String[] args) throws IOException {
		Reader is = Resources.getResourceAsReader("config.xml");
		SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);
		
		//通过sqlsessionfactory的对象调用getconfiguration()
		//调用addmapper()使用反射机制,将该接口添加到mapper
		sf.getConfiguration().addMapper(IUsers.class);
		
		//创建能执行映射文件中sql语句的sqlSession
		//使用SqlSessionFactory的对象sf调用openSession()
		//获得一个SqlSession对象
		SqlSession session = sf.openSession();
		
		//通过SqlSession的对象session调用getMapper()得到接口的实例
		IUsers iusers = session.getMapper(IUsers.class);
		
		//使用接口对象调用查询方法
		Users users = iusers.select(1);
		System.out.println(users.getId());
		System.out.println(users.getName());
		System.out.println(users.getAge());
	}

}

3. 实体类+接口+映射文件+基础配置文件+测试类
实体类同上

接口

public interface IUsers {
	
	//新增数据的方法
	public int insertUser(Users users);
	
	//删除数据的方法
	public int deleteUser(int i);
	
	//修改数据的方法
	public int updateUser(Users users);
	
	//查询数据的方法
	public Users selectUser(int i);
}

映射文件

<mapper namespace="dao.IUsers"><!-- 这里的值为接口全路径 -->

<!-- sql语句标签的id值必须与接口中对应的方法的方法名保持一致 -->
 <insert id="insertUser" parameterType="Users">
 	insert into users(id,name,age) values(#{id},#{name},#{age})
 </insert>
 
 <delete id="deleteUser" parameterType="int">
 	delete from users where id=#{id}
 </delete>
 
 <update id="updateUser" parameterType="Users">
 	update users set name=#{name},age=#{age} where id=#{id}
 </update>
 
 <select id="selectUser" parameterType="int" resultType="Users">
 	select * from users where id=#{id}
 </select>
 
</mapper>

基础配置文件与第一种方式相同

测试类

public class TestApp {

	public static void main(String[] args) throws IOException {
		//加载基础配置文件
		Reader is = Resources.getResourceAsReader("config.xml");
		//创建SqlSessionFactory对象
		SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
		//打开session会话
		SqlSession ss = ssf.openSession();
		//获取接口实例对象
		IUsers iu = ss.getMapper(IUsers.class);
		
		//创建实体类对象
		Users u = new Users();
		//设值
		u.setId(1);
		u.setName("李四");
		u.setAge(18);
		//使用接口对象调用修改方法
		int i = iu.updateUser(u);
		//提交操作
		ss.commit();
		
	}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP