Mybatis CRUD(基于代理)

#Mybatis CRUD(基于代理)

基本结构:

配置文件:1.SqlMapconfig 用于配置相关环境的属性,数据库的类型,以及数据库的名称密码等。

​ 标签中 是具体的dao的配置文件的全限定名,用于加载sql语句。其中resource指代使用xml配置的方式,class指代使用注解配置的方式。

<configuration>
   <environments default="mysql">
       <environment id="mysql">
           <transactionManager type="JDBC"></transactionManager>
           <dataSource type="POOLED">
               <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
               <property name="username" value="root"/>
               <property name="password" value="root"/>
           </dataSource>
       </environment>
   </environments>
   <mappers>
       <mapper resource="com\itheima\dao\IUserDao.xml"></mapper>
   </mappers>
</configuration>

User:用户类,与数据库中的表是对应关系。类中的属性均为表中对应的属性。属性对应时属性名称尽量保持一致。

package com.itheima.domain;

import java.io.Serializable;
import java.util.Date;

public class User  implements Serializable {
private Integer id;
private String username;
private String address;
private String sex;
private Date birthday;

public Integer getId() {
  return id;
}

public void setId(Integer id) {
  this.id = id;
}

public String getUsername() {
  return username;
}

public void setUsername(String username) {
  this.username = username;
}

public String getAddress() {
  return address;
}

public void setAddress(String address) {
  this.address = address;
}

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

@Override
public String toString() {
  return "User{" +
          "id=" + id +
          ", username='" + username + '\'' +
          ", address='" + address + '\'' +
          ", sex='" + sex + '\'' +
          ", birthday=" + birthday +
          '}';
}
}

Dao:数据实现接口,位于业务逻辑和数据库层之间。是一个接口用于定义可以对数据库进行的相关操作

public interface IUserdao {
   List<User> findAll();
   void saveUser(User user);
   void updateUser(User user);
   void deleteUser(Integer userId);
   User findById(Integer userId);
   List<User> findByName(String userName);
   int findTotal();

   List<User> findByVo(QueryVo queryVo);//由多个对象组成查询条件进行查询
}

IUserDao.xml基于代理方式实现对数据库操作的配置文件。包含了sql语句和Userdao中的对应关系,实现java方法到sql语句的转换,以及数据的封装拆装操作

<mapper namespace="com.itheima.dao.IUserdao">
   <select id="findAll" resultType="com.itheima.domain.User">
       select *from user;
   </select>
   <insert id="saveUser" parameterType="com.itheima.domain.User">
       insert into user (username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday});
   </insert>
   <update id="updateUser" parameterType="com.itheima.domain.User">
       update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id};
   </update>
   <delete id="deleteUser" parameterType="Integer">
       delete from user where id=#{uid};
   </delete>
   <select id="findById" parameterType="Integer" resultType="com.itheima.domain.User">
       select * from user where id=#{id};
   </select>
   <select id="findByName" parameterType="String" resultType="com.itheima.domain.User">
       select *from user where username like#{name};
   </select>
   <select id="findTotal" resultType="int">
       select count(id) from user ;
   </select>
<!--    根据query条件查询用户-->
   <select id="findByVo" parameterType="com.itheima.domain.QueryVo" resultType="com.itheima.domain.User">
       select *from user where username like#{user.username};
   </select>

</mapper>

select update等标签对应于mysql中的select update 等语句,parameterType代表参数的类型,resultType代表返回值类型,非基本类型的类需要制定类的全限定名。没有返回值和参数时,对应标签省略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值