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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

mybatis使用map插入数据和Mybatis的核心配置文件LOG4J

發布時間:2024/3/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis使用map插入数据和Mybatis的核心配置文件LOG4J 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mybatis使用map插入數據

  • UserMapper.java包中寫入
int addUser2(Map<Object,String> map);

Usermapper.xml

<insert id="addUser2" parameterType="map">insert into user(id,name,pwd) value(#{userID},#{userName},#{password});</insert>
  • 測試
@Testpublic void addUser2(){SqlSession sqlSession = mybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map<Object, String> map = new HashMap<>();map.put("userID", "7");map.put("userName","ll");map.put("password", "123456");int result = mapper.addUser2(map);sqlSession.commit();if (result > 0){System.out.println("插入成功");}sqlSession.close();}
  • 插入成功

Mybatis核心配置文件

  • 核心配置文件
    MyBatis 的配置文件包含了會深深影響 MyBatis 行為的設置和屬性信息。
    配置文檔的頂層結構如下:
  • configuration(配置)properties(屬性)settings(設置)typeAliases(類型別名)typeHandlers(類型處理器)objectFactory(對象工廠)plugins(插件)environments(環境配置)environment(環境變量)transactionManager(事務管理器)dataSource(數據源)databaseIdProvider(數據庫廠商標識)mappers(映射器)
  • 環境配置(environments)
  • Mybatis 可以配置成適應多種環境
    不過要記住:盡管可以配置多個環境,但是sqlSessionFactory實力只能選擇一種環境。
    會使用配置多套運行環境。
    Mybatis默認的事務就是JDBC,連接池:POOLED

    優化屬性

    編寫一個配置文件

    db.properties

    driver = com.mysql.jdbc.Driver url = jdbc:mysql://localhost:3306/mybatis?useSSL = false&amp;useUnicode = true&amp;characterEncoding =UTF-8 root = root password = root

    然后再核心配置文件中映入

    <properties resource="db.properties"> </properties>

    可以引入外部字段
    也可以再配置文件中添加字段
    如果兩個文件有同一個字段,優先使用外部文件

    類型別名(typeAliases)

    類型別名給java類型設置一個很短的名字

    <typeAliases><typeAlias type="com.lin.pojo.User" alias="user"/> </typeAliases>

    指定包別名
    可以指定包名掃描實體類的包。
    他的默認別名就為這個類的類名首字母小寫

    <typeAliases><package name="com.lin.pojo"/> </typeAliases>

    在實體類比較少得時候可以使用第一種,再實體類比較多得時候就推薦使用第二種
    第一種可以自定義名字
    第二種可以在實體類增加注解來實現自定義名字

    設置(settings)

    其他配置

    typeAliases(類型別名) typeHandlers(類型處理器) objectFactory(對象工廠) plugins(插件)

    映射器(Mapper)

    MapperRegistry注冊綁定mapper文件

    • 方式一
    <mappers><mapper resource="com/lin/Dao/UserMapper.xml"/></mappers>
    • 方式二 使用class文件綁定
    <mappers><mapper class="com.lin.Dao.UserMapper"/></mappers>

    方式二的注意事項
    接口和Mapper配置文件必須同名
    接口和Mapper配置文件必須再同一個包下

    • 方式三 使用掃描包注入綁定
    <mappers><package name="com.lin.Dao"/></mappers>

    注意事項

    • 接口和Mapper配置文件必須同名
    • 接口和Mapper配置文件必須再同一個包下

    推薦使用 方式一

    生命周期和作用域

    生命周期和作用域使用是非常重要的,因為錯誤的使用會導致非常嚴重的并發問題

    SqlSessionFactoryBuilder

    • 一旦創建了SqlSessionFactory,就不需要他了
    • 局部變量

    SqlSessionFactory

    • 數據庫連接池
    • SqlSessionFactory 一旦被創建就應該在應用的運行期間一直存在,沒有任何理由丟棄它或重新創建另一個實例。
    • 因此 SqlSessionFactory 的最佳作用域是應用作用域
    • 最簡單的就是使用單例模式或者靜態單例模式。

    SqlSession

    • 連接到連接池的一個請求
    • 每個線程都應該有它自己的 SqlSession 實例。SqlSession 的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。
    • 用完趕緊關閉,否則資源唄占用

    RestultMap結果集映射

    <mapper namespace="com.lin.Dao.UserMapper"><resultMap id="UserMap" type="user"><result column="pwd" property="password"/></resultMap><select id="getUserList" resultType="user" resultMap="UserMap">select * from mybatis.user</select></mapper>
    • resultMap 元素是 MyBatis 中最重要最強大的元素
    • ResultMap 的設計思想是,對簡單的語句做到零配置,對于復雜一點的語句,只需要描述語句之間的關系就行了

    日志

    日志工廠

    如果一個數據庫操作出現了異常,我們需要排錯,日志就是最好的助手

    曾經使用 sout debug
    現在 日志工廠
    SLF4J、
    LOG4J、
    LOG4J2、
    JDK_LOGGING、
    COMMONS_LOGGING、
    STDOUT_LOGGING、
    NO_LOGGING,
    在mybatis中具體使用哪一個日志輸入,在設置中設定
    STDOUT_LOGGING標準日志輸入
    在mybatis的核心配置文件中配置日志

    <settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings>

    LOG4j

    Log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件
    我們也可以控制每一條日志的輸出格式
    通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程,而不需要修改應用的代碼。

    log4j.propereties

    #將等級為DEBUG的日志信息輸出到console和file這兩個目的地,console和file的定義在下面的代碼 log4j.rootLogger=DEBUG,console,file#控制臺輸出的相關設置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%c]-%m%n#文件輸出的相關設置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/lin.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n#日志輸出級別 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG

    配置log4j為日志的實現

    <settings><setting name="logImpl" value="LOG4J"/></settings>

    在要使用log4j的包里導入import org.apache.Log4j.Logger;
    日志對象參數為當前使用的類

    static Logger logger = Logger.getLogger(test.class);

    日志的級別

    public void log4j(){logger.info("info");logger.debug("debug");logger.error("error");}

    輸出日志記錄

    總結

    以上是生活随笔為你收集整理的mybatis使用map插入数据和Mybatis的核心配置文件LOG4J的全部內容,希望文章能夠幫你解決所遇到的問題。

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