日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网项目--MyBatis

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网项目--MyBatis 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 安裝軟件:

MySQL

官網下載–>在根目錄下,新建文件夾my.ini–>

  • 對mysql進行初始化
    • 配置環境變量,將mysql的bin目錄配置到path中;
    • 對mysql進行初始化,密碼設定等,

      啟動mysql

net start mysql
登錄mysql
mysql -uroot -p
建庫導入數據表
source ‘sql文件的文件路徑’

mysql-workbenth/navicat

裝載客戶端,可視化界面;本機上使用navicat
從官網下載,正常安裝即可;
建立連接即可

MyBatis

核心組件

  • SqlSessionFactory:用于創建SqlSession的工廠類。
  • SqlSession: MyBatis的核心組件,用于向數據庫執行SQL。
    -主配置文件:XML配置文件,可以對MyBatis的底層行為做出詳細的配置。
  • Mapper接口:就是DAO接口(會有實現的機制,不用寫實現類),在MyBatis中習慣性的稱之為Mapper。
  • Mapper映射器:用于編寫SQL,并將SQL和實體類映射的組件,采用XML、注解均可實現?!?/li>
  • 示例:使用MyBatis對用戶表進行CRUD操作。

http://www.mybatis.org/mybatis-3
http://www.mybatis.org/spring

前三個組件被springboot整合,不需要自己實現

示例

前置操作
對用戶表user,用mybatis進行增刪改的操作
在項目中導入包

配置文件:


實體類:


代碼部分:
創建user類

package com.nowcoder.community.entity;import java.util.Date;public class User {private int id;private String username;private String salt;private String email;private int type;private int status;private String activationCode;private String headerUrl;private Date createTime;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSalt() {return salt;}public void setSalt(String salt) {this.salt = salt;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public int getType() {return type;}public void setType(int type) {this.type = type;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public String getActivationCode() {return activationCode;}public void setActivationCode(String activationCode) {this.activationCode = activationCode;}public String getHeaderUrl() {return headerUrl;}public void setHeaderUrl(String headerUrl) {this.headerUrl = headerUrl;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", salt='" + salt + '\'' +", email='" + email + '\'' +", type=" + type +", status=" + status +", activationCode='" + activationCode + '\'' +", headerUrl='" + headerUrl + '\'' +", createTime=" + createTime +'}';} }

創建Usermapper的抽象類,訪問數據庫,在Dao層中寫。不用寫實現類,

package com.nowcoder.community.dao;import com.nowcoder.community.entity.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; //添加注解,裝配bean @Mapper public interface UserMapper {User selectById(int id);User selectByName(String name);User selectByEmail(String email);int insertUser(User user);int updateStatus(int id,int status);int updateHeader(int id,String headerUrl);int updatePassword(int id,String password); }

提供配置文件
mapper文件夾下創建*.xml文件

注意寫全限定名(完整的包名)


<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.nowcoder.community.dao.UserMapper"><sql id="selectFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><select id="selectById" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere id=#{id}</select><select id="selectByame" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere name=#{username}</select><select id="selectByame" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere email=#{email}</select></mapper>


完整增改查的操作,并在測試類里面驗證

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.nowcoder.community.dao.UserMapper"><sql id="insertFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><sql id="selectFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><select id="selectById" resultType="User">select <include refid="selectFields"></include>from userwhere id=#{id}</select><select id="selectByame" resultType="User">select <include refid="selectFields"></include>from userwhere name=#{username}</select><select id="selectByame" resultType="User">select <include refid="selectFields"></include>from userwhere email=#{email}</select><insert id="insertUser" parameterType="User" keyProperty="id">insert into user (<include refid="insertFields"></include>)values(#{username},#{password},#{salt},#{email},#{type},#{status},#{activationCode},#{headerUrl},#{createTime})</insert><update id="updateStatus">update user set status=#{status} where id=#{id}</update><update id="updateHeader">update user set header_url=#{headerUrl} where id=#{id}</update><update id="updatePassword">update user set password=#{password} where id=#{id}</update> </mapper> package com.nowcoder.community;import com.nowcoder.community.dao.UserMapper; import com.nowcoder.community.entity.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner;import java.util.Date;@RunWith(SpringRunner.class) @SpringBootTest @ContextConfiguration(classes = CommunityApplication.class) public class MapperTests {@Autowired//注入beanprivate UserMapper userMapper;@Testpublic void testSelectUser(){User user=userMapper.selectById(101);System.out.println(user);user=userMapper.selectByName("liubei");System.out.println(user);user=userMapper.selectByEmail("nowcoder101@sina.com");System.out.println(user);}@Testpublic void testInsertUser(){User user=new User();user.setUsername("test");user.setPassword("123456");user.setSalt("abc");user.setEmail("test@qq.com");user.setHeaderUrl("http://www.nowcoder.com/101.png");user.setCreateTime(new Date());int rows=userMapper.insertUser(user);System.out.println(user);System.out.println(user.getId());}@Testpublic void updateUser(){int rows=userMapper.updateStatus(150,1);System.out.println(rows);rows=userMapper.updateHeader(150,"http://www.nowcoder.com/101.png");System.out.println(rows);rows=userMapper.updatePassword(150,"123456789");System.out.println(rows);} }

調試技巧
設置日志級別

logger

#logging.level.com.nowcoder.community=debug
#logging.file=d:/work/data/nowcoder/community.log

總結

以上是生活随笔為你收集整理的牛客网项目--MyBatis的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。