SSM--MyBatis對數據庫進行增刪改查

一、先附上項目層級目錄:

二、主配置文件:sqlMapConfig.xml 

配置mapper時一定要搞清它和你的mapper.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>	
 <!-- 在集成spring 是不用 -->
  <environments default="development">
    <environment id="development">
    <!-- 使用jdbc的事務 -->
      <transactionManager type="JDBC"/>
      <!-- 使用連接池 連接數據庫 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/skh?characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="usbw"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
   <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

三、UserMapper.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="UserMapper"><!-- 可能會有多個mapper配置文件 相當於給mapper配置文件另起一個名字 -->
 <!--  parameterType 爲sql語句中的參數類型
       resultType 查詢結果返回類型
  -->
 <select id="selectById" parameterType="int" resultType="cn.skh.bean.User">
   select * from qwe where id = #{id} 
 </select>
 <select id="selectUserByName" parameterType="String" resultType="cn.skh.bean.User">
    <!-- 根據名字模糊查詢用戶 -->
	<!-- #{} 佔位符 儘量選用#{}來解決問題 佔位符接收的傳值會自動加上雙引號 所以不需要在另外加引號-->
	<!-- ${} 字符串拼接 or 1=1  王 -->
	<!-- 字符串拼接寫法select * from qwe where name like '%${value}%'  -->
     select * from qwe where name like "%"#{name}"%"
     <!-- 等價於select * from qwe where name like '%王%' 不過參數 王 不需要另加引號 只需給%加即可 -->
 </select>
 <insert id="insertUser" parameterType="cn.skh.bean.User">
  <!-- 佔位符#{}中的內容要更具實體類中的變量名來寫  #{id}等價於cn.skh.bean.User.id-->
   insert into qwe values(#{id},#{name},#{password},#{sex})
 </insert>
 <update id="updateUser" parameterType="cn.skh.bean.User">
     update qwe set name = #{name} where id = #{id}
 </update>
 <delete id="deleteUserById" parameterType="int">
 delete from qwe where id = #{id}
 </delete>
</mapper>

三、JavaBean以及數據庫表結構

package cn.skh.bean;
/**
 * 需要注意的地方 bean中的屬性名稱要和數據庫中的屬性名稱相對性
 * 屬性和數據庫中字段的名稱要一樣 不能這個是name 那個是username
 * @author SKH
 *
 */
public class User {
     private int id;
     private String name;
     private String password;
     private String sex;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + name + ", password=" + password + ", sex=" + sex + "]";
	}
     
}
id	int	11	
name varchar	255	
password varchar	255	
sex	varchar	255	

四、測試類

package cn.skh.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 org.junit.Test;
import cn.skh.bean.User;
public class HelloMyBatis {
	//測試入門程序 通過id查詢用戶
	  private static void test() throws IOException {
		  //讀取配置文件
		  String resource = "sqlMapConfig.xml";
		  InputStream in = Resources.getResourceAsStream(resource);
		  //建造一個建造工廠的東東
		  SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
           //通過配置文件建造工廠
		  SqlSessionFactory ssf = ssfb.build(in);
		   //通過工廠生產商品
		  SqlSession session = ssf.openSession();
		   //使用商品 即操作數據庫
	       //參數1:要操作的sql語句     參數2:sql語句的參數
	       //UserMapper.selectById . 之前爲UserMapper配置文件的命名空間 之後爲select的id屬性值
	      User u = session.selectOne("UserMapper.selectById",1);
	      System.out.println(u);
	}
	//模糊查詢
	  private static void test2() throws IOException {
		  //讀取配置文件
		  String resource = "sqlMapConfig.xml";
		  InputStream in = Resources.getResourceAsStream(resource);
		//建造一個建造工廠的東東
		  SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
        //通過配置文件建造工廠
		  SqlSessionFactory ssf = ssfb.build(in);
		 //通過工廠生產商品
		  SqlSession session = ssf.openSession();
		  //使用商品 即操作數據庫
		  List<User> us = session.selectList("UserMapper.selectUserByName","逯");
		  for(User u:us) {
			  System.out.println(u);
		  }	 
	}
	  private static void test3() throws IOException {
		  //讀取配置文件
		  String resource = "sqlMapConfig.xml";
		  InputStream in = Resources.getResourceAsStream(resource);
		  //建造一個建造工廠的東東
		  SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
           //通過配置文件建造工廠
		  SqlSessionFactory ssf = ssfb.build(in);
		   //通過工廠生產商品
		  SqlSession session = ssf.openSession();
		   //使用商品 即操作數據庫
	      User u = new User();
	      u.setId(7);
	      u.setName("mlk");
	      u.setPassword("123456");
	      u.setSex("女");
	      session.insert("UserMapper.insertUser", u);
	      session.commit();//提交事務纔會生效    
	}
	  private static void test4() throws IOException {
		  //讀取配置文件
		  String resource = "sqlMapConfig.xml";
		  InputStream in = Resources.getResourceAsStream(resource);
		  //建造一個建造工廠的東東
		  SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
           //通過配置文件建造工廠
		  SqlSessionFactory ssf = ssfb.build(in);
		   //通過工廠生產商品
		  SqlSession session = ssf.openSession();
		   //使用商品 即操作數據庫
	      User u = new User();
	      u.setId(0);
	      u.setName("zxx&SKh");
	      session.update("UserMapper.updateUser", u);
	      session.commit();//提交事務纔會生效    
	}
	  private static void test5() throws IOException {
		  //讀取配置文件
		  String resource = "sqlMapConfig.xml";
		  InputStream in = Resources.getResourceAsStream(resource);
		  //建造一個建造工廠的東東
		  SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
           //通過配置文件建造工廠
		  SqlSessionFactory ssf = ssfb.build(in);
		   //通過工廠生產商品
		  SqlSession session = ssf.openSession();
		   //使用商品 即操作數據庫
	      session.delete("UserMapper.deleteUserById", 7);
	      session.commit();//提交事務纔會生效    
	}
  public static void main(String[] args) throws IOException {
       //test();//查詢
	  //test2();//查詢
	  //test3();//添加
	  //test4();//修改
	  //test5();//刪除
	}
}

五、最後附上一日誌文件(不一定必須要放在你的項目裏)

要注意此日誌文件要與你的sqlConfig.xml處於同一及目錄

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章