0
点赞
收藏
分享

微信扫一扫

秒杀系统(二)——基础知识回顾MyBatis之mapper代理方式写mybatis的应用程序


目录

​​1、环境搭建​​

​​2、添加实体​​

​​3、添加映射文件Person.xml​​

​​4、添加接口​​

​​5、添加SqlMappingConfig.xml文件​​

​​6、编写测试类进行测试​​

​​源代码:​​


1、环境搭建

秒杀系统(二)——基础知识回顾MyBatis之mapper代理方式写mybatis的应用程序_sql


2、添加实体

public class Person {

private int id;

private String name; // 姓名

private String sex; // 性别

private Date birthday; // 生日

private String address; // 地址

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 String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "Person [id=" + id + ", name=" + name + ", sex=" + sex + ", birthday=" + birthday + ", address="

+ address + "]";

}



}


3、添加映射文件Person.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="com.albertyy.mapper.PersonMapper">

<sql id="consutomsql" >

<if test="customPerson != null">

<if test="customPerson.name!=null and customPerson.name!=''">

and name = "${customPerson.name}"

</if>

<if test="customPerson.birthday!=null and customPerson.birthday!='' ">

and birthday = "${customPerson.birthday}"

</if>

</if>

</sql>

<select id="querypersonbyvo" parameterType="personVo" resultType="person">

select * from Person

<where>

<include refid="consutomsql"></include>

</where>

</select>

<select id="querypersonbyid" parameterType="int" resultType="person">

select id,name,sex,birthday,address from Person where id = #{value}

</select>



<select id="querypersonbyname" parameterType="java.lang.String" resultType="person">

select id,name,sex,birthday,address from Person where name like "%${value}%"

</select>



<insert id="inserperson" parameterType="person">

<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">

SELECT LAST_INSERT_ID()

</selectKey>

insert into Person(name,sex,address,birthday) value(#{name},#{sex},#{address},#{birthday})

</insert>



<delete id="deletepersonbyid" parameterType="int">

delete from Person where id = #{id}

</delete>



<delete id="updatepersonbyid" parameterType="person">

update Person set name=#{name},sex=#{sex},birthday=#{birthday},address=#{address} where id = #{id}

</delete>



</mapper>

4、添加接口

public interface PersonMapper {

public Person querypersonbyid(int id);

public List<Person> querypersonbyname(String name);

public void inserperson(Person person);

public void deletepersonbyid(int id);

public void updatepersonbyid(Person person);

public List<Person> querypersonbyvo(PersonVo personVo);

}

5、添加SqlMappingConfig.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="jdbc.properties">

<!--properties中还可以配置一些属性名和属性值 -->

<!-- <property name="jdbc.driver" value=""/> -->

</properties>



<typeAliases>

<!-- 别名定义 -->

<typeAlias type="com.albertyy.entity.Person" alias="Person" />

<typeAlias type="com.albertyy.vo.PersonVo" alias="PersonVo" />

</typeAliases>



<environments default="development">

<environment id="development">

<!-- 使用jdbc事务管理,事务控制由mybatis -->

<transactionManager type="JDBC" />

<!-- 数据库连接池,由mybatis管理 -->

<dataSource type="POOLED">

<property name="driver" value="${jdbc.driver}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</dataSource>

</environment>

</environments>





<!-- 加载 映射文件 -->

<mappers>





<!--通过resource方法一次加载一个映射文件 -->

<!--注意这里的路径和xml文件 -->

<mapper resource="Person.xml" />



</mappers>



</configuration>

6、编写测试类进行测试

public class TestMybatis {

// 获得工厂

public SqlSessionFactory getFactory() {

String filepath = "SqlMappingConfig.xml";

SqlSessionFactory sqlSessionFactory = null;

try {

InputStream in = Resources.getResourceAsStream(filepath);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);

} catch (IOException e) {

e.printStackTrace();

}

return sqlSessionFactory;

}



// 插入

@Test

public void testinsert() {

// 创建Person实体

Person person = new Person();

person.setName("藏小组");

person.setSex("男");

String date = "2019-01-12";

// 创建sdf对象,指定日期格式类型

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// sdf将字符串转化成java.util.Date

java.util.Date parse = null;

try {

parse = sdf.parse(date);

} catch (ParseException e) {

e.printStackTrace();

}

// java.util.Date转换成long

long time = parse.getTime();

// 将long转换为java.sql.Date

Date date2 = new Date(time);



person.setBirthday(date2);

person.setAddress("河南郑州");



// 得到工厂

SqlSessionFactory sqlSessionFactory = this.getFactory();

SqlSession sqlSession = sqlSessionFactory.openSession();

// 插入数据

PersonMapper personMapper=sqlSession.getMapper(PersonMapper.class);

personMapper.inserperson(person);

System.out.println(person.getId());

sqlSession.commit();

sqlSession.close();

}



// 通过Id查询

@Test

public void getByIdPerson() {

// 得到工厂

SqlSessionFactory sqlSessionFactory = this.getFactory();

SqlSession sqlSession = sqlSessionFactory.openSession();



Person person = sqlSession.getMapper(PersonMapper.class).querypersonbyid(3);

System.out.println(person);

sqlSession.commit();

sqlSession.close();

}



// 通过名字模糊查询

@Test

public void getByNameList() {

// 得到工厂

SqlSessionFactory sqlSessionFactory = this.getFactory();

SqlSession sqlSession = sqlSessionFactory.openSession();



List<Person> persons = sqlSession.getMapper(PersonMapper.class).querypersonbyname("小");

for (Person person2 : persons) {



System.out.println(person2);

}

sqlSession.commit();

sqlSession.close();

}



// 通过Id进行删除

@Test

public void deleteById() {

// 得到工厂

SqlSessionFactory sqlSessionFactory = this.getFactory();

SqlSession sqlSession = sqlSessionFactory.openSession();



sqlSession.getMapper(PersonMapper.class).deletepersonbyid(6);



sqlSession.commit();

sqlSession.close();

}



// 更新

@Test

public void testupdatePerson() throws IOException {

SqlSessionFactory sqlSessionFactory = this.getFactory();

SqlSession sqlsession = sqlSessionFactory.openSession();

Person person = new Person();

person.setId(2);

person.setName("AlbertYang666");

person.setAddress("河南郑州");

person.setSex("男");



String date = "2019-01-30";

// 创建sdf对象,指定日期格式类型

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// sdf将字符串转化成java.util.Date

java.util.Date parse = null;

try {

parse = sdf.parse(date);

} catch (ParseException e) {

e.printStackTrace();

}

// java.util.Date转换成long

long time = parse.getTime();

// 将long转换为java.sql.Date

Date date2 = new Date(time);

person.setBirthday(date2);

sqlsession.getMapper(PersonMapper.class).updatepersonbyid(person);

sqlsession.commit();

sqlsession.close();

}

}


源代码:

链接: ​​https://pan.baidu.com/s/1n4Swp3uvkMGTUcx-i-6sNQ​​ 提取码: axux


举报

相关推荐

0 条评论