框架mybatis小结(1)

前言
框架,什么是框架,再没学习框架之前总觉得框架是一个非常上档次的东西,现在才明白,框架就是为了优化代码,减少代码量的形成的,所以,框架在实际开发中的重要性是不难看出来的。
mybatis:
一、mybatis入门
(一)、了解是什么是mybatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
(二)、配置相关文件
在使用mybatis之前,首先你要拥有相应的配置,才可以进行相应的使用
在这里插入图片描述
一个是mybatis的架包,一个是连接数据库的加载驱动文件,在这同时也需要配置mybatis的来源文件配置,mybatis-config.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>
	<!-- 配置数据库访问的基本配置 -->
	<properties resource="db.properties">
		<property name="driver" value="com.mysql.jdbc.Driver" />
		<property name="url"
			value="jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&amp;characterEncoding=UTF-8" />
		<property name="username" value="root" />
		<property name="password" value="root" />
	</properties>

	<!-- 设置延迟加载 -->
	<settings>
		<setting name="lazyLoadingEnabled" value="false" />
	</settings>
	<!-- 配置类的别名 -->
	<typeAliases>
		<!-- <typeAlias type="com.afei.pojo.User" alias="User" />
		<typeAlias type="com.afei.pojo.Address" alias="Address" /> -->
		<!-- 这种优化的方式高于第一种,如果只写了包名,则默认的别名就是自己的类名 -->
		<package name="com.afei.pojo"/>
	</typeAliases>

	<!-- 配置数据访问的环境 -->
	<environments default="development">
		<environment id="development">
			<!-- 事务的管理 -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 数据源的管理 -->
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>

		<!-- 配置测试环境 -->
		<environment id="test">
			<transactionManager type=""></transactionManager>
			<dataSource type=""></dataSource>
		</environment>

		<!-- 配置生产环境 -->
		<environment id="produce">
			<transactionManager type=""></transactionManager>
			<dataSource type=""></dataSource>
		</environment>
	</environments>

	<!--加载映射文件 -->
	<mappers>
		<mapper resource="com//afei//user//dao//UserMapper.xml"></mapper>
	</mappers>

</configuration>

这个xml文件中的题头属于固定模式,不用理会,用的时候直接从中的内容开始配置。代码中我只配置了数据访问环境中的数据源的配置,其中里面还可以配置测试环境,配置生产环境。

二、mybatis的简单内容步骤总结如下:
从mybatis的概念中了解到,MyBatis 就是通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。在拥有上面的配置文件之后。
(一)、创建一个接口,同时在这个接口包内创建该接口的映射器;
在这里插入图片描述
接口的代码如如下:

public interface UserMapper {
	
	//查询用户的总记录数
	public int count();
	
	//查询所有的用户
	public List<User> getUserList();
	
	//根据指定的用户名进行查询
	public User findUserByUserName(String _username);
	
	//根据指定的用户对象进行查询
	public List<User> findUserByUser(User _user);
	
	
	//Map作为参数
	public User findUserByMap(Map map);
	
	//查询所有的地址
	public List<Address> findAddressAll();
	
	//添加地址
	public int add(Address _address);

}

而映射器的代码如下:

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.afei.user.dao.UserMapper">
	<!-- 查询统计用户的个数 -->
	<select id="count" resultType="Integer">
		select count(1) as count from smbms_user
	</select>
	
	<!-- 查询所有的用户 -->
	<select id = "getUserList" resultType="User">
		select * from smbms_user
	</select>
	
	<!-- 根据指定用户来进行查询 -->
	<select id="findUserByUserName" resultType="User" parameterType="String">
		select * from smbms_user where userName like contact('%',#{_username},'%')
	</select>
	
	<!--根据指定的用户对象进行查询  -->
	<select id="findUserByUser" resultType="User" parameterType="User">
		select * from smbms_user where userName=#{userName}
	</select>
	
	<!-- Map作为对象参数进行入参查询 -->
	<select id="findUserByMap" resultType="User" parameterType="Map">
		select * from smbms_user where userName like concat('%',#{uName},'%') and gender =#{gender1}
	</select>
	
	<!--查询所有的地址  -->
	<select id="findAddressAll" resultType="Address" resultMap="addressDesc">
		select * from smbms_address
	</select>
	
	<!-- 自定义映射 -->
	<resultMap type="Address" id="addressDesc">
		<result property="addressInfo" column="addressDesc"/>
	</resultMap>
	
	<!--简单添加操作  -->
	<insert id="add" parameterType="Address">
		insert into smbms_address(id,contact,addressDesc)values(#{id},#{contact},#{addressInfo})
	</insert>
</mapper>

映射器的内容主要是sql语句,这里的话就要提到实体类,其中写的字段要和数据库的字段一一对应。

public class User {
	private int id;
	private String userCode;
	private String userName;
	private String userPassword;
	private int gender;
	private Date birthday;
	private String phone;
	private String address;
	private int userRole;
	private int createdBy;
	private Date creationDate;
	private int modifyBy;
	private Date modifyDate;
	private String idPicPath;
	private String workPicPath;
	public Address address1;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUserCode() {
		return userCode;
	}
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPassword() {
		return userPassword;
	}
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}
	public int getGender() {
		return gender;
	}
	public void setGender(int gender) {
		this.gender = gender;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public int getUserRole() {
		return userRole;
	}
	public void setUserRole(int userRole) {
		this.userRole = userRole;
	}
	public int getCreatedBy() {
		return createdBy;
	}
	public void setCreatedBy(int createdBy) {
		this.createdBy = createdBy;
	}
	public Date getCreationDate() {
		return creationDate;
	}
	public void setCreationDate(Date creationDate) {
		this.creationDate = creationDate;
	}
	public int getModifyBy() {
		return modifyBy;
	}
	public void setModifyBy(int modifyBy) {
		this.modifyBy = modifyBy;
	}
	public Date getModifyDate() {
		return modifyDate;
	}
	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}
	public String getIdPicPath() {
		return idPicPath;
	}
	public void setIdPicPath(String idPicPath) {
		this.idPicPath = idPicPath;
	}
	public String getWorkPicPath() {
		return workPicPath;
	}
	public void setWorkPicPath(String workPicPath) {
		this.workPicPath = workPicPath;
	}
	public Address getAddress1() {
		return address1;
	}
	public void setAddress1(Address address1) {
		this.address1 = address1;
	}
	
	
	
	
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值