diff --git a/mybatis/lib/hamcrest-core-1.1.jar b/mybatis/lib/hamcrest-core-1.1.jar new file mode 100644 index 0000000..e5149be Binary files /dev/null and b/mybatis/lib/hamcrest-core-1.1.jar differ diff --git a/mybatis/lib/junit-4.13.2.jar b/mybatis/lib/junit-4.13.2.jar new file mode 100644 index 0000000..6da55d8 Binary files /dev/null and b/mybatis/lib/junit-4.13.2.jar differ diff --git a/mybatis/lib/lombok.jar b/mybatis/lib/lombok.jar new file mode 100644 index 0000000..49f5286 Binary files /dev/null and b/mybatis/lib/lombok.jar differ diff --git a/mybatis/lib/mybatis-3.5.7.jar b/mybatis/lib/mybatis-3.5.7.jar new file mode 100644 index 0000000..4ec6061 Binary files /dev/null and b/mybatis/lib/mybatis-3.5.7.jar differ diff --git a/mybatis/lib/mysql-connector-java-8.0.27.jar b/mybatis/lib/mysql-connector-java-8.0.27.jar new file mode 100644 index 0000000..683ac26 Binary files /dev/null and b/mybatis/lib/mysql-connector-java-8.0.27.jar differ diff --git a/mybatis/mybatis-config.xml b/mybatis/mybatis-config.xml new file mode 100644 index 0000000..4c6b659 --- /dev/null +++ b/mybatis/mybatis-config.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mybatis/mybatis.iml b/mybatis/mybatis.iml new file mode 100644 index 0000000..559c27e --- /dev/null +++ b/mybatis/mybatis.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mybatis/out/production/mybatis/com/test/Main.class b/mybatis/out/production/mybatis/com/test/Main.class new file mode 100644 index 0000000..6dbb061 Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/Main.class differ diff --git a/mybatis/out/production/mybatis/com/test/MybatisUtil.class b/mybatis/out/production/mybatis/com/test/MybatisUtil.class new file mode 100644 index 0000000..8aecfc7 Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/MybatisUtil.class differ diff --git a/mybatis/out/production/mybatis/com/test/entity/Student.class b/mybatis/out/production/mybatis/com/test/entity/Student.class new file mode 100644 index 0000000..39aef6b Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/entity/Student.class differ diff --git a/mybatis/out/production/mybatis/com/test/log/Main.class b/mybatis/out/production/mybatis/com/test/log/Main.class new file mode 100644 index 0000000..fa81d30 Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/log/Main.class differ diff --git a/mybatis/out/production/mybatis/com/test/mapper/TestMapper.class b/mybatis/out/production/mybatis/com/test/mapper/TestMapper.class new file mode 100644 index 0000000..715d8a8 Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/mapper/TestMapper.class differ diff --git a/mybatis/out/production/mybatis/com/test/test/MainTest.class b/mybatis/out/production/mybatis/com/test/test/MainTest.class new file mode 100644 index 0000000..791b7f0 Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/test/MainTest.class differ diff --git a/mybatis/out/production/mybatis/com/test/test/TestFormatter.class b/mybatis/out/production/mybatis/com/test/test/TestFormatter.class new file mode 100644 index 0000000..9c2bddc Binary files /dev/null and b/mybatis/out/production/mybatis/com/test/test/TestFormatter.class differ diff --git a/mybatis/src/com/test/Main.java b/mybatis/src/com/test/Main.java new file mode 100644 index 0000000..e6452d1 --- /dev/null +++ b/mybatis/src/com/test/Main.java @@ -0,0 +1,79 @@ +package com.test; + +import com.test.MybatisUtil; +import com.test.entity.Student; +import com.test.mapper.TestMapper; +import lombok.SneakyThrows; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.logging.*; + +public class Main { + public static void main(String[] args) throws FileNotFoundException { +// SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml")); +// try(SqlSession session=sqlSessionFactory.openSession(true)){ +// List list =session.selectList("selectStudent"); +// list.forEach(System.out::println); +// +// } + try (SqlSession session = MybatisUtil.getSession(true)) { + TestMapper mapper=session.getMapper(TestMapper.class); + System.out.println(mapper.addStudent(new Student().setName("BBB").setSid(114541))); + mapper.deleteStudent(65454); + XMLFormatter xmlFormatter=new XMLFormatter(); + SimpleFormatter simpleFormatter=new SimpleFormatter(); + Logger logger=Logger.getLogger(Main.class.getName()); + + FileHandler fileHandler=new FileHandler("test.log",true); + fileHandler.setFormatter(simpleFormatter); + fileHandler.setLevel(Level.WARNING); + logger.addHandler(fileHandler); + + + logger.setLevel(Level.WARNING); + logger.setUseParentHandlers(false); + ConsoleHandler consoleHandler=new ConsoleHandler(); + consoleHandler.setLevel(Level.WARNING); + logger.addHandler(consoleHandler); + + logger.setFilter(record -> !record.getMessage().contains("!")); + + logger.log(Level.SEVERE,"server warning!!!!!"); + logger.log(Level.WARNING,"warning"); + logger.log(Level.INFO,"info!!"); + logger.log(Level.CONFIG,"config!!!"); + System.out.println(logger.getParent().getClass()); + +// Mapmap=new HashMap<>(); +// map.put("number",null); +// System.out.println(map); 区别:map的valuie值可以为空 properties值不能为空 + + Properties properties=new Properties(); + properties.load(new FileInputStream("test.properties")); +// properties.put("number",null); + properties.store(System.out,"Look here"); + System.getProperties().forEach((k,v)->System.out.println(k+":"+v)); + + + + + + + + + + + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/mybatis/src/com/test/MybatisUtil.java b/mybatis/src/com/test/MybatisUtil.java new file mode 100644 index 0000000..dc45aea --- /dev/null +++ b/mybatis/src/com/test/MybatisUtil.java @@ -0,0 +1,29 @@ +package com.test; + +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; + +public class MybatisUtil { + //在类加载时就进行创建 + private static SqlSessionFactory sqlSessionFactory; + static { + try { + sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml")); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + /** + * 获取一个新的会话 + * @param autoCommit 是否开启自动提交(跟JDBC是一样的,如果不自动提交,则会变成事务操作) + * @return SqlSession对象 + */ + public static SqlSession getSession(boolean autoCommit){ + return sqlSessionFactory.openSession(autoCommit); + } +} diff --git a/mybatis/src/com/test/entity/Student.java b/mybatis/src/com/test/entity/Student.java new file mode 100644 index 0000000..802f983 --- /dev/null +++ b/mybatis/src/com/test/entity/Student.java @@ -0,0 +1,15 @@ +package com.test.entity; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class Student { + + String name; + int sid; + + + +} diff --git a/mybatis/src/com/test/log/Main.java b/mybatis/src/com/test/log/Main.java new file mode 100644 index 0000000..27b7be6 --- /dev/null +++ b/mybatis/src/com/test/log/Main.java @@ -0,0 +1,11 @@ +package com.test.log; + + +import lombok.extern.java.Log; +@Log(topic = "小王八") +public class Main { + public static void main(String[] args) { + System.out.println(log.getName()); + log.info("Look here"); + } +} diff --git a/mybatis/src/com/test/mapper/TestMapper.java b/mybatis/src/com/test/mapper/TestMapper.java new file mode 100644 index 0000000..e87ba92 --- /dev/null +++ b/mybatis/src/com/test/mapper/TestMapper.java @@ -0,0 +1,13 @@ +package com.test.mapper; + +import com.test.entity.Student; +import org.apache.ibatis.annotations.*; + +public interface TestMapper { + @Insert("insert into student values(#{name},#{sid})") + String addStudent(Student student); + @Delete("delete from student where sid=#{sid}") + void deleteStudent(int sid); + @Select("select *from student where sid=#{sid}") + String getStudent(int sid); +} diff --git a/mybatis/src/com/test/test/MainTest.java b/mybatis/src/com/test/test/MainTest.java new file mode 100644 index 0000000..002791e --- /dev/null +++ b/mybatis/src/com/test/test/MainTest.java @@ -0,0 +1,42 @@ +package com.test.test; + +import com.test.entity.Student; +import com.test.mapper.TestMapper; +import lombok.extern.java.Log; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.logging.LogManager; + + +@Log +public class MainTest { + + private SqlSessionFactory sqlSessionFactory; + @Before + public void before(){ + try { + sqlSessionFactory = new SqlSessionFactoryBuilder() + .build(new FileInputStream("mybatis-config.xml")); + LogManager manager = LogManager.getLogManager(); + manager.readConfiguration(new FileInputStream("test.properties")); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Test + public void test(){ + try(SqlSession sqlSession = sqlSessionFactory.openSession(true)){ + TestMapper mapper = sqlSession.getMapper(TestMapper.class); + log.info(mapper.getStudent(2).toString()); + } + } +} \ No newline at end of file diff --git a/mybatis/src/com/test/test/TestFormatter.java b/mybatis/src/com/test/test/TestFormatter.java new file mode 100644 index 0000000..338aec8 --- /dev/null +++ b/mybatis/src/com/test/test/TestFormatter.java @@ -0,0 +1,15 @@ +package com.test.test; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.logging.Formatter; +import java.util.logging.LogRecord; + +public class TestFormatter extends Formatter { + @Override + public String format(LogRecord record) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + String time = format.format(new Date(record.getMillis())); //格式化日志时间 + return time + " : " + record.getMessage() + "\n"; + } +} \ No newline at end of file diff --git a/mybatis/test.log b/mybatis/test.log new file mode 100644 index 0000000..80df176 --- /dev/null +++ b/mybatis/test.log @@ -0,0 +1,30 @@ +八月 15, 2022 7:04:02 下午 com.test.Main main +严重: server warning!!!!! +八月 15, 2022 7:04:02 下午 com.test.Main main +警告: warning +八月 15, 2022 7:04:21 下午 com.test.Main main +严重: server warning!!!!! +八月 15, 2022 7:04:21 下午 com.test.Main main +警告: warning +八月 15, 2022 7:12:06 下午 com.test.Main main +警告: warning +八月 15, 2022 7:22:20 下午 com.test.Main main +警告: warning +八月 15, 2022 7:22:37 下午 com.test.Main main +警告: warning +八月 15, 2022 7:23:19 下午 com.test.Main main +警告: warning +八月 15, 2022 7:29:38 下午 com.test.Main main +警告: warning +八月 15, 2022 7:29:54 下午 com.test.Main main +警告: warning +八月 15, 2022 7:30:20 下午 com.test.Main main +警告: warning +八月 15, 2022 7:33:22 下午 com.test.Main main +警告: warning +八月 15, 2022 7:33:57 下午 com.test.Main main +警告: warning +八月 15, 2022 7:38:42 下午 com.test.Main main +警告: warning +八月 15, 2022 7:42:55 下午 com.test.Main main +警告: warning diff --git a/mybatis/test.properties b/mybatis/test.properties new file mode 100644 index 0000000..bb7d0ea --- /dev/null +++ b/mybatis/test.properties @@ -0,0 +1,4 @@ +handlers= java.util.logging.ConsoleHandler +.level= ALL +java.util.logging.ConsoleHandler.level = ALL +java.util.logging.ConsoleHandler.formatter = com.test.TestFormatter \ No newline at end of file