1通过JDBC方式连接数据库 2 31.准备工作 4 在系统上安装mysql以及java开发环境,IDE等。 5 检查:1.eclipse可以编译运行程序 6 2.MySQL用户名密码正确 7 3.查询表存在,查询语句可以执行 8 92.下载MySQL的驱动包,mysql-connector-java-5.1.47-bin.jar,新建java项目之后需要把驱动包加入项目。 103.编写代码 11 12 try { 13 14 Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序 15 System.out.println("Success loading Mysql Driver!"); //ja 16 }catch (Exception e) { 17 System.out.print("Error loading Mysql Driver!"); 18 e.printStackTrace(); 19 } 20 try{ 21 Connection connect = DriverManager.getConnection( 22 "jdbc:mysql://localhost:3306/test","root","root"); 23 //连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码 24 25 System.out.println("Success connect Mysql server!"); 26 Statement stmt = connect.createStatement(); 27 ResultSet rs = stmt.executeQuery("select * from info"); 28 //user 为你表的名称 29 while (rs.next()) { 30 System.out.println(rs.getString("id")); 31 System.out.println(rs.getString("name")); 32 } 33 }catch(Exception e) { 34 System.out.print("get data error!"); 35 e.printStackTrace(); 36 } 37 //通过JDBC实现查询,需要把sql语句写在程序中。而且,处理查询的结果也要手工处理 38 39 40二、使用JDBC TEMPLATE的相关操作。 41 42 spring提供的操作JDBC的工具类。 43 依赖于,连接池DATASource,(数据源)。 44 使用准备:在mysql中建立数据库,建立表,添加数据。 45 创建项目、导入jar包:日志,spring核心4个包,jdbc包、事务的包以及他们的依赖c3p0连接池,dbcp连接池和依赖。mysql的包。 46 建立一个和表对应的类,user对应info表。作为javabean 47 48 49 具体使用方法。 50 - 使用API(了解) 使用API和JDBC很相似。 51 建立一个TestAPI,主函数 52 1.创建数据源,连接池 53 BasicDataSource dataSource = new ****; 54 dataSource.setDriverClassName(); 55 dataSource.setUrl(); 56 dataSource.setUsername(); 57 dataSource.setPassword(); 58 59 2.创建模板 60 JdbcTemplate jdbcTemplate = new ** 61 jdbcTemplate.setDataSource(dataSource); 62 63 3.通过API来操作 64 jdbcTemplate的成员函数来进行增删改查。 65 jdbcTemplate.update("","","")//语句中可以使用?来代替,后面给出数据。 66 //只要看到了NEW,SET,就可以交给Spring来实现DAO 67 68 - 配置DBCP 69 通过Spring去注入模板 70 建立一个userDAO类,中间包含jdbcTemplate.通过set方法设置值 71 建立一个mainA类,编写beans.xml文件。配置DAO<bean id = “” class = “” >,还需要在xml中创建模板。模板中还需要注入一个数据源。 72 通过spring工厂来生成这个类。 73 不熟悉使用从上向下写,熟悉从下向上写,先写xml,再写main函数。(需要前面的注入知识) 74 75 UserDAO的内容: 76 package com.test.b_dbcp; 77 import org.springframework.jdbc.core.JdbcTemplate; 78 import org.springframework.jdbc.core.metadata.OracleCallMetaDataProvider; 79 public class UserDao { 80 public JdbcTemplate jdbcTemplate; 81 82 public JdbcTemplate getJdbcTemplate() { 83 return jdbcTemplate; 84 } 85 86 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { 87 this.jdbcTemplate = jdbcTemplate; 88 } 89 90 //获取了模板,使用模板的api进行操作。 91 public void updateDate() 92 { 93 this.jdbcTemplate.update("update info set name = 'cxc' where id = 12"); 94 } 95 } 96 97 BEANS.XML的内容: 98 <?xml version="1.0" encoding="UTF-8"?> 99 <beans xmlns="http://www.springframework.org/schema/beans" 100 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 101 xmlns:p="http://www.springframework.org/schema/p" 102 xsi:schemaLocation="http://www.springframework.org/schema/beans 103 http://www.springframework.org/schema/beans/spring-beans.xsd"> 104 105 //配置数据源的工厂 106 <bean id = "dataSourceid" class="org.apache.commons.dbcp2.BasicDataSource"> 107 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 108 <property name="url" value="jdbc:mysql://localhost:3306/test"></property> 109 <property name="username" value="root"></property> 110 <property name="password" value="root"></property> 111 </bean> 112 113 //配置JDBCTemplate的工厂 114 <bean id = "jdbcTemplateid" class="org.springframework.jdbc.core.JdbcTemplate"> 115 <property name="dataSource" ref="dataSourceid"></property> 116 </bean> 117 118 //配置UserDao的工厂 119 <bean id="userDaoid" class="com.test.b_dbcp.UserDao"> 120 <property name="jdbcTemplate" ref="jdbcTemplateid"></property> 121 </bean> 122 </beans> 123 124 - 配置C3P0 125 和DBCP十分相似。只是数据源是通过C3P0的方式来配置 126 ComboPooledDataSource,相关的设置(set方法)可能不一样。 127 jdbcTemplate相关的配置是一样的。 128 129 xml文件: 130 <?xml version="1.0" encoding="UTF-8"?> 131 132 <beans xmlns="http://www.springframework.org/schema/beans" 133 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 134 xmlns:p="http://www.springframework.org/schema/p" 135 xsi:schemaLocation="http://www.springframework.org/schema/beans 136 http://www.springframework.org/schema/beans/spring-beans.xsd"> 137 138 <bean id = "dataSourceid" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 139 <property name="driverClass" value="com.mysql.jdbc.Driver"></property> 140 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property> 141 <property name="user" value="root"></property> 142 <property name="password" value="root"></property> 143 </bean> 144 145 <bean id = "jdbcTemplateid" class="org.springframework.jdbc.core.JdbcTemplate"> 146 <property name="dataSource" ref="dataSourceid"></property> 147 </bean> 148 149 <bean id="userDaoid" class="com.test.c_c3p0.UserDao"> 150 <property name="jdbcTemplate" ref="jdbcTemplateid"></property> 151 </bean> 152 </beans> 153 154 了解一个jdbcTemplate的API,查询。 155 query(),返回一个,全部。常用:查询语句,封装对象。ctrl+shift+t查看帮助文档。 156 在使用query()函数时,需要了解一个接口RowMapper; 157 JdbcTemplate用于在每个行的基础上,映射结果集ResultSet的行的接口。该接口的实现,将每行数据映射到实例对象。但不必担心异常处理。调用JdbcTemplate将捕获并处理SQLExceptions。 158 通常用于JdbcTemplate的查询方法或存储过程的输出参数。 RowMapper对象通常是无状态的,因此可重用;它们是在一个地方实现行映射逻辑的理想选择。或者,考虑从jdbc.object包子类化MappingSqlQuery:而不是使用单独的JdbcTemplate和RowMapper对象,您可以构建该样式的可执行查询对象(包含行映射逻辑) 159 需要建立一个新的的类去继承RowMapper,设置对应的关系。 160 UserMapping如下 161 public class UserMapping implements RowMapper<User> { 162 @Override 163 public User mapRow(ResultSet rs, int rowNum) throws SQLException { 164 // TODO Auto-generated method stub 165 166 //建立一个user 167 User user = new User(); 168 169 //通过rs进行关系对应 170 user.setId(rs.getInt("id")); 171 user.setName(rs.getString("name")); 172 173 //输出结果 174 return user; 175 } 176 } 177 178 179 - 配置JDBCDaoSupport(使用比较多),在C3P0的基础上 180 在userDao中需要写一个javaTemplate.可以让子类继承JdbcDaoSupport。 181 可以通过getJdbcTemplate来代替jabcTemplate. 182 183 //可以在xml中简化装配,不需要在dao中设置jdbcTemplate,只要直接把dataSource引入数据库中就可以了。 184 //Dao需要继承JdbcDaoSupport。 185 UserDao的写法 186 public class UserDao extends JdbcDaoSupport { 187 188 //获取了模板,使用模板的api进行操作。 189 public void updateDate() 190 { 191 this.getJdbcTemplate().update("update info set name = 'qyq' where id = 12"); 192 } 193 194 public void searchDate() 195 { 196 String sql = "select * from info;"; 197 List<User> ret_list = this.getJdbcTemplate().query(sql,new UserMapping()); 198 199 for(User user: ret_list) 200 { 201 System.out.println(user.toString()); 202 } 203 } 204 } 205 206 xml文件的写法 207 <bean id = "dataSourceid" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 208 <property name="driverClass" value="com.mysql.jdbc.Driver"></property> 209 <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property> 210 <property name="user" value="root"></property> 211 <property name="password" value="root"></property> 212 </bean> 213 214 <bean id="userDaoid" class="com.test.d_jdbcDaoSupport.UserDao"> 215 <property name="dataSource" ref="dataSourceid"></property> 216 </bean> 217 218 在xml文件中,可以删除jdbcTemplate。而不需要设置。直接对dao来引入数据源。 219 如果继承了这个类,就可以直接引入数据源。 220 221 - 配置properties。在之前的基础中。 222 开发过程中,会把数据源的相关信息写到propertise的文件中jbdcInfo.propertise. 223 在xml中加载配置文件 224 使用context:property-placeholder location="" 225 之后就可以通过key来获取文件中的内容。 226 //因为电脑无法输入美元符号,这个就不进行测试了。 227 228 229 所有需要的jar包 230 mysql的驱动:mysql-connector-java-5.1.47-bin.jar 231 232 Spring的核心: 233 spring-beans-4.1.8.RELEASE.jar 234 spring-context-4.1.8.RELEASE.jar 235 spring-core-4.1.8.RELEASE.jar 236 spring-expression-4.1.8.RELEASE.jar 237 org.apache.commons.logging_1.1.1.jar 238 239 Spring JdbcTemplate相关: 240 spring-jdbc-4.1.8.RELEASE.jar 241 spring-tx-4.1.8.RELEASE.jar 242 243 数据源相关: 244 commons-dbcp2-2.5.0.jar 245 commons-pool2-2.6.0.jar 246 c3p0-0.9.5.2.jar 247 248 249 250三、使用MyBatis链接数据库 2511.在JDBC的基础上下载mybatis的jar包 2522.导入jar包 2533.查看帮助文档,编写文件xml
java的数据库相关操作
Wesley13
2021-10-11
1257 1 0
点赞
收藏
评论区
加载中...