02——mybatis簡單使用

MyBatis的簡單使用

Sql

/*

Navicat MySQL Data Transfer


Source Server? ? ? ? : Linux_mysql

Source Server Version : 50622

Source Host? ? ? ? ? : 192.168.188.130:3306

Source Database? ? ? : db_mybatis

Target Server Type? ? : MYSQL

Target Server Version : 50622

File Encoding? ? ? ? : 65001

Date: 2019-01-06 18:21:07

*/

SET FOREIGN_KEY_CHECKS=0;


-- ----------------------------

-- Table structure for t_student

-- ----------------------------

DROP TABLE IF EXISTS `t_student`;

CREATE TABLE `t_student` (

? `id` int(11) NOT NULL AUTO_INCREMENT,

? `name` varchar(20) DEFAULT NULL,

? `age` int(11) DEFAULT NULL,

? PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

項目結(jié)構(gòu)



mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>


<!-- 約束(用于開發(fā)時提示補(bǔ)全)【務(wù)必確保導(dǎo)入約束文件】 -->

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">



<configuration><!-- 配置根節(jié)點(diǎn) -->

<properties resource="jdbc.properties"/><!-- 屬性文件引入 -->

<typeAliases><!-- 實(shí)體類關(guān)聯(lián)別名 -->

<typeAlias alias="Student" type="model.Student"/><!-- 設(shè)置別名 -->

</typeAliases>

<environments default="development"> <!-- 環(huán)境集(默認(rèn): 開發(fā)者模式) -->

<environment id="development"><!-- 環(huán)境(編號: 隨便取) -->

<transactionManager type="JDBC" /><!-- 事務(wù)管理器 -->

<dataSource type="POOLED"><!-- 數(shù)據(jù)源(如何連接數(shù)據(jù)庫) -->

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

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

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

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

</dataSource>

</environment>

</environments>

<mappers><!-- 映射配置 -->

<mapper resource="mappers/StudentMapper.xml" />

</mappers>

</configuration>






jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://192.168.188.130:3306/db_mybatis?characterEncoding=UTF-8

jdbc.username=root

jdbc.password=root




StudentMapper.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="mappers.StudentMapper">

<!--

#{}: 防注入? ${}:直接拼接暇唾,沒有雙引號

parameterType :參數(shù)類型

useGeneratedKeys :是否自動生成主鍵 keyProperty :主鍵是哪個屬性

-->


<!-- insert -->

<insert id="add" parameterType="Student" useGeneratedKeys="true" keyProperty="id" >

insert into t_student values(null,#{name},#{age})

</insert>

<!-- update -->

<update id="update" parameterType="Student">

update t_student set name = #{name},age = #{age} where id = #{id} and name != #{name}

</update>


<!-- delete -->

<delete id="delete" parameterType = "Integer">

delete from t_student where id = #{id}

</delete>

<delete id="deletes" parameterType = "list">

delete from t_student where id in

<foreach collection="list" item="id" index="index"

open="(" separator="," close=")" >

#{id}

</foreach>

</delete>

<!-- selectAll -->

<select id="selectAll" resultType="model.Student">

select * from t_student

</select>

<!-- selectById -->

<select id="selectById" parameterType="Integer" resultType="model.Student">

select * from t_student where id=#{id}

</select>

<!-- selectWeNa -->

<select id="selectWeNa" parameterType="Student" resultType="model.Student">

select * from t_student where name like #{name} and age=#{age}

</select>

<!-- selectFy -->

<select id="selectFy" parameterType="map" resultType="model.Student">

select * from t_student order by id desc limit #{first},#{end}

</select>

</mapper>




SqlSessionFactoryUtil.java

package util;


import java.io.InputStream;


import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class SqlSessionFactoryUtil {


private static SqlSessionFactory sqlSessionFactory;

public static SqlSessionFactory getSqlSessionFactory(){

if(sqlSessionFactory==null){

? ? InputStream inputStream=null;

try{

? ? inputStream=Resources.getResourceAsStream("mybatis-config.xml");

? ? sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

}catch(Exception e){

? ? e.printStackTrace();

}

}

return sqlSessionFactory;

}

public static SqlSession openSession(){

? ? ? ? return getSqlSessionFactory().openSession();

}

}



StudentMapper.java

package mappers;


import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;


import model.Student;


public interface StudentMapper {


public int add(Student student);

public int update(Student student);

public int delete(Integer id);

public int deletes(ArrayList<Integer> ids);

public List<Student> selectAll();

public List<Student> selectById(Integer id);

public List<Student> selectWeNa(Student student);

public List<Student> selectFy(HashMap<String, Integer> map);

}



Student.java

package model;


public class Student {


private Integer id;

private String name;

private Integer age;

public Student() {

super();

}

public Student(Integer id) {

super();

this.id = id;

}

public Student(String name, Integer age) {

super();

this.name = name;

this.age = age;

}



public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}


@Override

public String toString() {

return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";

}

}




StudentTest.java

package service;


import java.util.ArrayList;

//底層的

import java.util.HashMap;

//外部的

import org.apache.ibatis.session.SqlSession;


import mappers.StudentMapper;

import model.Student;

import util.SqlSessionFactoryUtil;


public class StudentTest {


public static void main(String[] args) {

SqlSession sqlSession = SqlSessionFactoryUtil.openSession();

StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);


// 查詢所有

// for (Student s : studentMapper.selectAll()) {

// System.out.println(s);

// }


// ID查詢

// for (Student s : studentMapper.selectById(1)) {

// System.out.println(s);

// }


// 條件查詢

// for (Student s : studentMapper.selectWeNa(new Student("張%", 10))) {

// System.out.println(s);

// }

// 分頁查詢

// HashMap<String, Integer> map = new HashMap<String, Integer>();

// map.put("first", 0);

// map.put("end", 3);

// for (Student s : studentMapper.selectFy(map)) {

// System.out.println(s);

// }


// 添加

// Student student = new Student("李六", 11);

// int result = studentMapper.add(student);

// System.out.println("相應(yīng)行數(shù):"+result);

// System.out.println("id:"+student.getId());

// 修改

// Student student = new Student("admin",16);

// student.setId(1);

// int i = studentMapper.update(student);

// System.out.println("成功修改 "+i+" 條數(shù)據(jù)");

// 刪除

// int i = studentMapper.delete(13);

// System.out.println(i==0?"刪除失敗":"刪除成功");

// 批量刪除(in)

// ArrayList<Integer> ids = new ArrayList<Integer>();

// ids.add(9);

// ids.add(10);

// ids.add(11);

// int i = studentMapper.deletes(ids);

// System.out.println("刪除了 "+i+" 條數(shù)據(jù)");


sqlSession.commit();

}


}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唯鸭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌枯冈,老刑警劉巖浆兰,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雨饺,死亡現(xiàn)場離奇詭異荐吉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蝗拿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門晾捏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哀托,你說我怎么就攤上這事惦辛。” “怎么了仓手?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵胖齐,是天一觀的道長。 經(jīng)常有香客問我俗或,道長岁忘,這世上最難降的妖魔是什么辛慰? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溺职。我一直安慰自己岔擂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布浪耘。 她就那樣靜靜地躺著乱灵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪七冲。 梳的紋絲不亂的頭發(fā)上痛倚,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音澜躺,去河邊找鬼蝉稳。 笑死,一個胖子當(dāng)著我的面吹牛掘鄙,可吹牛的內(nèi)容都是我干的耘戚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼通铲,長吁一口氣:“原來是場噩夢啊……” “哼毕莱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颅夺,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤朋截,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吧黄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體部服,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年拗慨,在試婚紗的時候發(fā)現(xiàn)自己被綠了廓八。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡赵抢,死狀恐怖剧蹂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烦却,我是刑警寧澤宠叼,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響冒冬,放射性物質(zhì)發(fā)生泄漏伸蚯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一简烤、第九天 我趴在偏房一處隱蔽的房頂上張望剂邮。 院中可真熱鬧,春花似錦横侦、人聲如沸挥萌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑞眼。三九已至,卻和暖如春棵逊,著一層夾襖步出監(jiān)牢的瞬間伤疙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工辆影, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徒像,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓蛙讥,卻偏偏與公主長得像锯蛀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子次慢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1 Mybatis入門 1.1 單獨(dú)使用jdbc編程問題總結(jié) 1.1.1 jdbc程序 上邊使...
    哇哈哈E閱讀 3,295評論 0 38
  • 1旁涤、Mybatis支持普通SQL查詢、存儲一級高級映射的優(yōu)秀持久層框架 2迫像、Mybatis可以使用簡單的XML或注...
    JHMichael閱讀 349評論 0 1
  • 獅子想找一個動物接替他做“萬獸之王”。于是由缆,他宣布:“從現(xiàn)在開始注祖,你們輪流當(dāng)‘萬獸之王’,每個動物當(dāng)一個星期均唉。誰做...
    伴農(nóng)微言閱讀 492評論 0 0
  • 墨色的夜空罩缴,星星點(diǎn)點(diǎn),走在下班的路上靴庆,突然想起了遠(yuǎn)方的你怒医,早已忘記渾身的疲憊炉抒。突然想去江灘走走,心之所...
    卿頤閱讀 319評論 1 5
  • 現(xiàn)在終于明白為什么這么多年沒啥成長稚叹,原因就是自己沒有恒心和耐心
    草帽小子呀閱讀 165評論 0 0