<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ~~~ <!-- sql demo--> CREATE TABLE `employee` ( `id` varchar(50) NOT NULL default '', `name` varchar(50) default NULL, `gender` char(1) default NULL, `address` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `employee` VALUES ('1', '張全蛋', '1', '暴走大事件'); INSERT INTO `employee` VALUES ('2', '王尼瑪', '1', '暴走大事件'); INSERT INTO `employee` VALUES ('3', '李小華', '0', '富士康'); INSERT INTO `employee` VALUES ('4', '趙鐵柱', '1', '富士康'); INSERT INTO `employee` VALUES ('5', '風清揚', '1', '華山'); INSERT INTO `employee` VALUES ('6', '周杰倫', '1', '臺北'); INSERT INTO `employee` VALUES ('7', '卡死了', '1', '我說的'); ~~~ > 使用步驟: > 1) 導入jar包 ![](https://box.kancloud.cn/c734069ed8737886098fe54907151c86_280x86.png) > 2)添加mybatis全局配置文件,log4j日志文件,數據源信息文件 ##### 1.新建一個文件夾(命名為resource或者config),將此文件夾放在類路徑下(怎么放?見下面步驟) ![](https://box.kancloud.cn/b7eabd76146f30e0532b6365475326d1_450x573.png) ![](https://box.kancloud.cn/f6cbe12a311b4aeff5c5cbe3192d9243_747x562.png) //全局配置文件 ~~~ <?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> <!-- 導入配置文件。可以在當前頁面 ${鍵} 來或者 鍵所對應的valueu值 key=value --> <properties resource="dbconfig.properties"/> <!-- 聲明別名 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}" /> <property name="username" value="${user}"/> <property name="password" value="${psw}"/> </dataSource> </environment> </environments> <!-- 對應的實體類的配置文件 --> <mappers> <mapper resource="cn/li/pojo/EmployeeMapper.xml"/> <mapper class="cn.li.dao.EmpDao"/> </mappers> </configuration> ~~~ //log4j日志文件 ~~~ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="Encoding" value="GBK" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" /> </layout> </appender> <logger name="java.sql"> <level value="debug" /> </logger> <logger name="org.apache.ibatis"> <level value="info" /> </logger> <root> <level value="debug" /> <appender-ref ref="STDOUT" /> </root> </log4j:configuration> ~~~ //數據源信息文件 ~~~ driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis1?characterEncoding=utf-8 user=root psw=root ~~~ > 3)創建實例類(POJO,domain,javaBean,entity),實體類的映射文件(sql映射文件) ~~~ public class Employee { private int id ; private String name; private char gender; private String address; //setter、getter方法 toString方法 } ~~~ ~~~ //Mapper.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"> <!-- 每一個實體類 都對應著Mybatis的一個命名空間 。 namespace屬性值 相當于id,如果存在多個 不允許重復 --> <!-- 命名空間,一般情況下,在當前空間中聲明的是,實體類對應的別名 --> <mapper namespace="cn.li.dao.EmployeeDao"> <select id="selOne" resultType="cn.li.pojo.Employee"> select * from employee where id=#{id} </select> <!-- 新增 刪除 修改的時候parameterType="cn.li.pojo.Employee --> <!-- 新增員工 使用主鍵自增 自增必須有這兩個屬性useGeneratedKeys="true" keyProperty="id" --> <insert id="insertEmp" useGeneratedKeys="true" keyProperty="id"> insert into employee(name,gender,address) values(#{name},#{gender},#{address}) </insert> <!-- 刪除員工 --> <delete id="deleteEmp"> delete from employee where id=#{id} </delete> <!-- 更新員工 --> <delete id="updateEmp"> update employee set name=#{name},gender=#{gender} where id=#{id} </delete> <!-- 通過名字和性別查詢員工信息 --> <select id="selEmpByNameAndGender" resultType="cn.li.pojo.Employee"> select * from employee where name=#{name} and gender=#{gender}; </select> <!-- 通過名字和性別查詢員工信息 入參是map集合 --> <select id="selEmpByMap" resultType="cn.li.pojo.Employee"> select * from employee where name=#{aa} and gender=#{bb}; </select> <!-- 查詢所有員工 --> <select id="selAllEmp" resultType="cn.li.pojo.Employee"> select * from employee </select> <!-- 動態sql 之if --> <select id="selDS1" resultType="cn.li.pojo.Employee"> select * from employee where 1=1 <if test="name!=null"> and name like '%${name}%' </if> </select> <!-- 動態sql 之choose when otherwise 注意 choose只選擇一次。如果所有when都不滿足的時候,otherwise中的內容才會被拼接 --> <select id="selDS2" resultType="cn.li.pojo.Employee"> select * from employee where 1=1 <choose> <when test="name!=null"> and name like '%${name}%' </when> <when test="address!=null"> and address='${address}' </when> <otherwise> order by name </otherwise> </choose> </select> <!-- 動態sql 之where<> --> <select id="selDS3" resultType="cn.li.pojo.Employee"> select * from employee <where> <choose> <when test="name!=null"> name like '%${name}%' </when> <when test="address!=null"> address='${address}' </when> <otherwise> order by name </otherwise> </choose> </where> </select> <!-- 動態sql 之where<> and if --> <select id="selDS4" resultType="cn.li.pojo.Employee"> select * from employee <where> <if test="name!=null"> name like '%${name}%' </if> <if test="address!=null"> and address='${address}' </if> </where> </select> <!-- 動態sql 之trim and if --> <select id="selDS5" resultType="cn.li.pojo.Employee"> select * from employee <trim prefix="WHERE" prefixOverrides="and /or "> <if test="name!=null"> name like '%${name}%' </if> <if test="address!=null"> and address=#{address} </if> </trim> </select> <!-- 動態sql 之set --> <update id="selDS6"> update employee <set> <if test="name!=null"> name=#{name}, </if> <if test="address!=null"> address=#{address} </if> </set> where id=#{id} </update> <!-- 動態sql 之set --> <update id="selDS7"> update employee <trim prefix="SET" suffixOverrides=","> <if test="name!=null"> name=#{name}, </if> <if test="address!=null"> address=#{address} </if> </trim> where id=#{id} </update> <!-- foreach批量刪除 --> <delete id="deleteBatch"> delete from employee where id in <!-- collection list 數組:array --> <foreach collection="list" open="(" separator="," close=")" item="ids"> #{ids} </foreach> </delete> </mapper> ~~~ > 4)將映射文件注冊到mybatis全局配置文件中 ![](https://box.kancloud.cn/436ce0268bc0b57c7e9e44b56b59a797_689x127.png) > 5)編寫SQL,根據全局配置文件拿到SqlSessionFactory,通過SqlSessionFactory拿到SqlSession對象,調用封裝好的方法進行CRUD,關閉會話。 ~~~ try { // 根據全局配置文件。利用SqlSessionFactoryBuilder創建數據庫會話工廠對象。 Reader reader = Resources.getResourceAsReader("resource.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 通過會話工廠獲取SqlSession對象,一個SqlSession對象代表和數據庫的一次會話 SqlSession session = sqlSessionFactory.openSession(); // 推薦使用namespace+id,防止多個配置文件中的id重復。 Employee emp = session.selectOne("hello.selOne", "1"); System.out.println(emp); // 每次使用完需要關閉sqlsession對象。(必須) session.close(); // 注意:SqlSession不是線程安全的,因此不能被共享。 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } /** * 新增員工操作 */ @Test public void test4(){ SqlSession sqlSession=getSqlSession(); EmployeeDao employeeDao=sqlSession.getMapper(EmployeeDao.class); Employee emp=new Employee("張三",'1',"常山"); int total=employeeDao.insertEmp(emp); sqlSession.commit();//已經默認開啟了事務,需要手動的提交 System.out.println(total); sqlSession.close(); } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看