MyBitas工程搭建
JDBC连接及操作数据库
注册驱动
建立连接
1
创建执行sql语句的对象
1
执行语句
1
处理执行结果
1
释放资源
1
下面进行详解:
- 注册驱动
常用的有3种方式: 1) 直接注册驱动: DriverManager.registerDriver(com.mysql.jdbc.Driver);这种方式要求程序首先要引入驱动包,否则无法通过编译。而且它可能会造成DriverManager中产生两个一样的驱动,并对具体的驱动类产生依赖,所以不推荐使用。 2) 键值对方式: System.setProperty(“jdbc.drivers”,”com.mysql.jdbc.Driver”);同时注册多个驱动则用冒号隔开。这种方式如果事先不引入驱动包的情况下能通过编译(因为操作的都为字符串,运行时肯定不行啦),所以虽然不会对具体的驱动类产生依赖,但注册不太方便,所以很少使用。 3) Class.forName方式(类似反射): Class.forName(“com.mysql.jdbc.Driver”); Class.forName函数的作用是根据类的名字将类装载到虚拟机中(并未实例化);这种方式也不会对具体的驱动类产生依赖,而且使用很方便,所以推荐使用。 2. 建立连接 Connection conn=DriverManager.getConnection(url,uid,pwd); url格式:JDBC:子协议:子名称//主机名:端口/数据库名?key=value&… 例如:jdbc:mysql://localhost:8086/jdbc;uid和pwd也可以用key=value的方式告诉数据库。 其它参数:如,userUnicode=true&characterEncoding=gbk 3. 创建执行sql语句的对象 这里有两个对象可以使用:Statement、PreparedStatement对象 一般来说有参数的sql操作都用PreparedStatement对象,因为它有防止sql注入等优点。两者的区别这里不多介绍,创建语句:(假设conn为数据库连接对象) Statement st=conn.createStatement(); PreparedStatement ps=conn.prepareStatement(strSql); 可以看出在创建PreparedStatement对象时即需要指明要执行的sql语句,因为它会对sql语句进行预处理,例如进行一些防止sql注入的字符过滤等;而Statement则在执行sql动作时才指明sql语句。 4. 执行语句(CURD) 查询:st.executeQuery(strSql);或者ps. executeQuery(); 非查询(增、删、改):st.executeUpdate(strSql);或ps.executeUpdate(); 5. 处理执行结果 查询:返回值用ResultSet接收,例:ResultSet rs=st.executeQuery(strsql) 非查询(增、删、改):返回值为int 6. 释放资源 依次释放ResultSet、Statement(或PreparedStatement)、Connection对象,释放顺序与创建顺序相反(类似“栈”结构)
引入MyBatis依赖
org.mybatis mybatis 3.4.6
编程式配置方法
创建 mybatis-config.xml 文件并将 mybatis 文档中的内容复制过来,并将数据库配置信息换成自己的: mybatis-config.xml 是总控制文件,EmployeeMapper.xml 是MyBatis的 sql映射文件,在里面也 sql 语句 所有的 sql映射文件都会写到总控文件中"http://mybatis.org/dtd/mybatis-3-config.dtd">
配置文件配置MyBatis
1、SqlMapConfig.xml是mybatis的全局配置文件,配置内容如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)–environment(环境子属性对象)----transactionManager(事务管理)----dataSource(数据源)mappers(映射器)案例实操properties将数据库连接参数单独配置在db.properties中,放在类路径下。这样只需要在SqlMapConfig.xml中加载db.prope