mybatis(基本增删改查,一对一,一对多)

基本的增删改查
要完成增删改查首先要把配置好mybatis
首先在main当中创建好java,resourece文件夹以及在src中创建一个test文件夹用来供测试使用

然后配置pom文件引入核心依赖

<!--引入mybatis框架-->

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>

    <!-- mysql驱动包 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.44</version>
    </dependency>

    <!-- 引入struts2依赖 -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.3.33</version>
    </dependency>

    <!-- 引入Servlet的核心依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>

但是要注意如果要把实体类的映射文件与实体类放在一起就要把pom文件中
解决java文件无法编译xml文件的问题
在这里插入图片描述

然后在配置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>
    <typeAliases>
       <!-- <typeAlias type="com.hlp.entity.Student" alias="Student"></typeAlias>-->
        <package name="com.hlp.entity"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/pro?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!--添加映射文件 映射实体类的映射文件-->
    <mappers>
        <mapper resource="com/hlp/entity/Student.xml"></mapper>
    </mappers>
</configuration>

配置实体类文件,该文件中完成增删改查

public class testCURD {
private SqlSession session;
    @Before
    public void  before(){
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(getClass().getClassLoader().getResourceAsStream("Mybatis_config.xml"));
         session= factory.openSession();
    }

    @Test
    public void alltest(){
    /* List<Student> list=session.selectList("student.selectStudent");
        for (Student l : list) {
            System.out.println(l.getSname());
        }*/

 /*  Student student=session.selectOne("student.selectStudentById",1);
        System.out.println(student.getSname());*/
   /* Student stu=new Student("小小","女",20);
    session.insert("student.addStudent",stu);*/
   /*修改一条数据*/
        StudentDao stud=session.getMapper(StudentDao.class);
        Student student=stud.selectStudentById(1);
        student.setSname("周毅");
        stud.updateStudent(student);

      /*使用dao模式*/
       /* StudentDao stud=session.getMapper(StudentDao.class);
        List<Student> list=stud.selectStudent();
        for (Student student1 : list) {
            System.out.println(student1.getSname());
        }*/

       /* stud.deleteStudentById(2);*/


    }

    @After
    public void after(){
        session.commit();
        session.close();
    }
}

二.一对一

<?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="users">
    <select id="findUsers" resultType="Users">
        select * from users;
    </select>
    <!--自定义类型 一对一关系中所需要的自定义类型-->
    <resultMap id="UsersAndCard" type="Users">
        <id  property="uid" column="UID"></id>
        <result property="uname" column="UNAME"></result>
       <association property="card" javaType="Card">
           <result property="uid" column="UID"></result>
           <result property="number" column="NUMBER"></result>
       </association>
       
    </resultMap>
    <select id="findUsersAndCard" parameterType="int" resultMap="UsersAndCard">
        select u.*,c.* from users u,card c where u.uid=c.uid and u.uid=#{uid};
    </select>
</mapper>

二,一对多

<?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="province">
<!--一对多自定义类型-->
    <resultMap id="ProvinceAndCity" type="Province">
        <id property="pid" column="PID"></id>
        <result property="pname" column="PNAME"></result>
        <collection property="cities" column="pid" ofType="City">
            <id property="cid" column="CID"></id>
            <result property="cname" column="CNAME"></result>
        </collection>
    </resultMap>
    <select id="findProvinceAndCity" parameterType="int" resultMap="ProvinceAndCity">
     select p.*,c.* from province p,city c where p.pid=c.pid and p.pid=#{pid};
    </select>
</mapper>

一对一和一对多的测试方法省略,和基本的增删改查的调用方式相同

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值