亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

MyBatis (四) 最佳實際

2024-04-27 15:17:16
字體:
來源:轉載
供稿:網友

到看這里,現在在返回第一章,hibernate 和 mybatis的區別,是否感覺更加深刻了。

下面我們進入我們本章的重點: mybatis 實際應用中按照下面的4個步驟: - 創建實體對象 (User.java) - 創建操作數據庫接口 (UserDao.java) - 用mapper 完成接口實現 (UserDao.xml) 重點(通過mapper 映射就可以直接調用接口) - 配置映射文件包(在mybatis-config.xml中配置)

下面是代碼: 這里寫圖片描述

User.java 代碼

package com.zll.mybatis.bean;import java.util.Date;public class User { PRivate int id; private int parentId; private int sonId; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getParentId() { return parentId; } public void setParentId(int parentId) { this.parentId = parentId; } public int getSonId() { return sonId; } public void setSonId(int sonId) { this.sonId = sonId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "User [id=" + id + ", parentId=" + parentId + ", sonId=" + sonId + ", name=" + name + ", birthday=" + birthday + "]"; }}

UserDao 代碼

package com.zll.mybatis.dao;import java.util.List;import com.zll.mybatis.bean.User;public interface UserDao { public void insertReteunId(User user) throws Exception; public void deleteById(int id) throws Exception; public void updateById(User user) throws Exception; public List<User> findByName(String username) throws Exception;}

UserDao.xml 代碼 (核心,實現了UserDao的接口)

這里必須做到4個一致: 1、namespace 和 映射對象 包名類名一致。 2、id名稱 和 映射對象 方法名 一致 3、parameterType 和 映射對象 參數類型 一致 4、resultType 和 映射對象 返回類型 一致

<?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.zll.mybatis.dao.UserDao"> <!-- 增加用戶并返回 id--> <insert id="insertReteunId" parameterType="com.zll.mybatis.bean.User"> <selectKey keyProperty="id" order="AFTER" resultType="int"> <!-- sql語句,獲取最近插入數據的id --> select last_insert_id(); </selectKey> insert into user(parentId,sonId,name,birthday) value(#{parentId},#{sonId},#{name},#{birthday}) </insert> <!-- 刪除 --> <delete id="deleteById" parameterType="int"> delete from user where id=#{id} </delete> <!-- 更新 --> <update id="updateById" parameterType="com.zll.mybatis.bean.User"> update user set parentId=#{parentId},sonId=#{sonId},name=#{name},birthday=#{birthday} where id=#{id} </update> <!-- 模糊查詢 ${}符號表示sql使用拼接方式,這樣會參數sql注入露點,所以大家要注意 --> <select id="findByName" parameterType="string" resultType="com.zll.mybatis.bean.User"> <!-- select * from user where name like "%${value}%" --> select * from user where name like #{value} </select></mapper>

最后在在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> <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/my_db?characterEncoding=UTF8"/> <property name="username" value="root"/> <property name="passWord" value="root"/> </dataSource> </environment> </environments> <mappers> <!-- 映射路徑 添加整個包,就不用每個類都配置了 --> <package name="com/zll/mybatis/dao"/> </mappers></configuration>

測試代碼(直接調用接口完成數據查詢):

package com.zll.mybatis.mybatis;import java.io.InputStream;import java.util.Date;import java.util.List;import junit.framework.TestCase;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.zll.mybatis.bean.User;import com.zll.mybatis.dao.UserDao;/** * Unit test for simple App. */public class APPTest extends TestCase { SqlSessionFactory sqlSessionFactory; @Override protected void setUp() throws Exception { super.setUp(); String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } public void insertUser() throws Exception { SqlSession session = sqlSessionFactory.openSession(); UserDao mapper = session.getMapper(UserDao.class); User user = new User(); user.setName("小紅蘿卜"); user.setBirthday(new Date()); mapper.insertReteunId(user); System.out.println("user id = "+user.getId()); session.close(); } public void updateUser() throws Exception { SqlSession session = sqlSessionFactory.openSession(); UserDao mapper = session.getMapper(UserDao.class); User user = new User(); user.setId(4); user.setParentId(3); user.setName("小狗蛋"); user.setBirthday(new Date()); mapper.updateById(user); session.commit(); session.close(); } public void findUser() throws Exception { SqlSession session = sqlSessionFactory.openSession(); UserDao mapper = session.getMapper(UserDao.class); List<User> list = mapper.findByName("%小%"); for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } session.close(); } public void deleteUser() throws Exception { SqlSession session = sqlSessionFactory.openSession(); UserDao mapper = session.getMapper(UserDao.class); mapper.deleteById(8); session.commit(); session.close(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情按摩在线| 欧美性xxxx极品hd欧美风情| 一区二区三区美女xx视频| 成人黄色在线免费| 欧美黄色片免费观看| 韩国视频理论视频久久| 亚洲精品99久久久久| 456国产精品| 日韩电影免费在线观看中文字幕| 日本一区二区在线播放| 亚洲人免费视频| 日本一区二区三区四区视频| 亚洲精品乱码久久久久久金桔影视| 91久久精品国产91久久| 久久久久久一区二区三区| 欧美精品久久久久| 亚洲老司机av| 中文字幕一区日韩电影| 日韩成人在线视频网站| 日本不卡视频在线播放| 久久精品欧美视频| 欧美精品在线第一页| 欧美成人免费在线视频| www.午夜精品| 亚洲高清av在线| 国产精品看片资源| 孩xxxx性bbbb欧美| 国产一区二区三区高清在线观看| 97视频在线观看亚洲| 久久伊人91精品综合网站| 欧美日韩国产精品专区| 在线性视频日韩欧美| 日本久久久久久久| 91情侣偷在线精品国产| 色偷偷av一区二区三区| 国产一区二区三区视频免费| 欧美日韩国产成人在线| 在线亚洲午夜片av大片| 国产一区二区黄| 亚洲欧美日韩国产中文| 国产成人一区二区三区电影| 66m—66摸成人免费视频| 精品欧美激情精品一区| 日韩成人在线视频观看| 国产精品电影在线观看| 91老司机精品视频| 一个人www欧美| 91福利视频网| 国内精品视频久久| 久久视频在线视频| 亚洲色图狂野欧美| 欧美国产亚洲精品久久久8v| 日韩美女免费线视频| 国产大片精品免费永久看nba| 欧美性视频精品| 激情成人在线视频| 国产99久久精品一区二区永久免费| 永久555www成人免费| 中文字幕日本精品| 久久久亚洲福利精品午夜| 久久中国妇女中文字幕| 欧美激情2020午夜免费观看| 国产精品中文字幕在线观看| 91国在线精品国内播放| 欧美另类极品videosbest最新版本| 亚洲欧美国产精品va在线观看| 成人欧美一区二区三区在线湿哒哒| 国产成人久久久精品一区| 午夜精品久久久久久久99黑人| 亚洲 日韩 国产第一| 欧美专区第一页| 欧美中文字幕在线播放| 夜夜狂射影院欧美极品| 欧洲亚洲女同hd| 亚洲一区999| 538国产精品一区二区在线| 久久精品成人欧美大片古装| 26uuu另类亚洲欧美日本老年| 亚洲人成网站999久久久综合| 日韩精品视频免费专区在线播放| 亚洲男人7777| 成人午夜高潮视频| 亚洲欧美在线一区二区| 欧美性猛交xxxxx免费看| 色与欲影视天天看综合网| 在线观看欧美日韩国产| 日韩成人黄色av| 国产精品99一区| 国产精品久久久久久久久久久久久久| 91亚洲国产成人精品性色| 日韩美女免费视频| 91成人精品网站| 日韩欧美综合在线视频| 91久久夜色精品国产网站| 亚洲视频自拍偷拍| 美日韩丰满少妇在线观看| 日韩美女免费观看| 国色天香2019中文字幕在线观看| 亚洲视频欧洲视频| 国产精品免费看久久久香蕉| 日本人成精品视频在线| 欧美精品久久一区二区| 亚洲天堂免费在线| 伊人久久免费视频| 91在线视频免费| 欧美自拍视频在线观看| 国产97人人超碰caoprom| 亚洲精品www久久久久久广东| 亚洲色图欧美制服丝袜另类第一页| 亚洲国产成人在线播放| 91国偷自产一区二区三区的观看方式| 精品国产一区二区三区久久久| 自拍偷拍亚洲区| 精品一区二区电影| 亚洲最新av网址| 欧美激情久久久久久| 亚洲一级黄色av| 久久香蕉精品香蕉| 狠狠做深爱婷婷久久综合一区| 欧美韩国理论所午夜片917电影| 国a精品视频大全| 欧美日韩爱爱视频| 91极品女神在线| 久久夜色撩人精品| 欧美精品一区二区三区国产精品| 亚洲国产精品久久久久久| 欧美视频中文字幕在线| 欧美成人免费全部观看天天性色| 欧美孕妇毛茸茸xxxx| 欧美日韩中文字幕在线视频| 黑人精品xxx一区一二区| 欧美激情久久久久久| 成人一区二区电影| 欧美综合一区第一页| 亚洲直播在线一区| 九色精品免费永久在线| 亚洲国产精品电影在线观看| 日韩国产中文字幕| 欧美成人一区二区三区电影| 国产乱肥老妇国产一区二| 日韩免费高清在线观看| 97超级碰碰碰| 日韩美女在线观看一区| 一个人看的www欧美| 久久久久久久久久久久久久久久久久av| 国产精品高潮在线| 欧美老女人www| 久久久久久12| 日韩在线精品一区| 欧美一级大片在线免费观看| 日韩欧美黄色动漫| 欧美视频国产精品| 久久国产精品影视| 性色av一区二区三区| 97婷婷涩涩精品一区| 国产精品欧美亚洲777777| 一区二区三区视频免费在线观看| 亚洲国语精品自产拍在线观看| 91沈先生在线观看| 欧美第一黄色网| 国产精品久久久久久久久影视| 国产精品久久久久久久久久| 色婷婷成人综合| yellow中文字幕久久|