jee、spring、spring mvc、mybatis 学习(六)
来源:互联网 发布:好的码字软件 编辑:程序博客网 时间:2024/06/07 06:12
转载请申明出处:http://blog.csdn.net/qq5132834/article/details/52211902
在完成第五节spring、spring mvc配置文件的分离之后,这节里开始涉及数据库的连接了;连接数据库的方式方法有很多种,下面一一展示出来,在src类文件夹下新建包【com.zuk.database】。
1、JDBC数据库直连 :新建一个【DB.java】类文件;
package com.zuk.database;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * @author 513283439@qq.com * 采用数据JDBC数据库直连的方式 * */public class DB {public static Connection conn = null;/** * 建立数据库连接 * */public static Connection getConnection(){if(conn!=null){return conn;}else{try {//这里建立的是oracle数据连接Class.forName("oracle.jdbc.OracleDriver") ;String url = "jdbc:oracle:thin:@//10.2.12.14:1521/GGRDAT" ; String username = "username" ; String password = "password" ;conn = DriverManager.getConnection(url , username , password ) ; } catch (Exception e) {e.printStackTrace();} return conn;}}/** * 关闭数据库连接 * */public static void closeConnection(){if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}}}
2、采用【properties】文件的方式配置数据库链接信息,但是这种方式与上一种方式性质是一样,只是将数据库的驱动、url、用户、密码等信息存储在【properties】文件中。
在【src/sources】包中新建一个【jdbc.properties】文件,内容如下:
driver=oracle.jdbc.OracleDriverurl=jdbc:oracle:thin:@//10.2.12.14:1521/GGRDATuser=usernamepassword=password
再在【com.zuk.database】中新建一个【DatabaseProperties.java】类,内容如下。
注意:获取【jdbc.properties】文件的路径的方式。
如果在【WEB-INF】文件夹中的话,则用:
InputStream fis = context.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
package com.zuk.database;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;/** * @author 513283439@qq.com * 采用properties文件的方式建立JDBC数据库直连的方式 * */public class DatabaseProperties {public static Connection conn = null;/** * 建立数据库连接 * */public static Connection getConnection(){if(conn!=null){return conn;}try {Properties prop = new Properties();//属性集合对象 InputStream fis = DatabaseProperties.class.getClassLoader().getResourceAsStream("sources/jdbc.properties");prop.load(fis);//将属性文件流装载到Properties对象中 String driver = prop.getProperty("driver");String url = prop.getProperty("url");String user = prop.getProperty("user");String password = prop.getProperty("password"); System.out.println(driver);System.out.println(url);System.out.println(user);System.out.println(password);Class.forName(driver);conn = DriverManager.getConnection(url,user,password );} catch (Exception e) {e.printStackTrace();}return conn;}/** * 关闭数据库连接 * */public static void closeConnection(){if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}}}
3、采用【IoC】容器的方式建立数据链接,方式如下:
3.1新建一个java类【DatabaseJavaBean.java】内容如下:
package com.zuk.database;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.util.Properties;public class DatabaseJavaBean {private String driver = "driver";private String url = "url";private String user = "user";private String password = "password";public DatabaseJavaBean(){}public DatabaseJavaBean(String driver,String url,String user,String password){this.driver = driver;this.url = url;this.user = user;this.password = password;}public void setDriver(String driver) {this.driver = driver;}public void setUrl(String url) {this.url = url;}public void setUser(String user) {this.user = user;}public void setPassword(String password) {this.password = password;}public void showDataInfo(){System.out.println(this.driver);System.out.println(this.url);System.out.println(this.user);System.out.println(this.password);}public Connection getConnection(){Connection conn = null;try {String driver = this.driver;String url = this.url;String user = this.user;String password = this.password; Class.forName(driver);conn = DriverManager.getConnection(url,user,password );} catch (Exception e) {e.printStackTrace();}return conn;}}
3.2:、在【src/sources】文件夹中新建一个xml文件【database-javabean.xml】,内容如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean id="databaseJavaBean" class="com.zuk.database.DatabaseJavaBean"><property name="driver" value="oracle.jdbc.OracleDriver" /><property name="url" value="jdbc:oracle:thin:@//10.2.12.14:1521/GGRDAT" /><property name="user" value="user" /><property name="password" value="password" /></bean></beans>
注意:bean的初始化采用【property】标签初始化,所以对于【com.zuk.database.DatabaseJavaBean.java】类的属性必须添加【set】方法。
3.3、将【database-javabean.xml】文件注入【IoC】的方式有两种,一种是手动注入;一种是自动注入;
手动注入:
/** * 通过javabean的方式 * */private Connection getConnection(){//将其加入IOC容器中ApplicationContext context = new ClassPathXmlApplicationContext("sources/database-javabean.xml");DatabaseJavaBean javaBean = (DatabaseJavaBean) context.getBean("databaseJavaBean");javaBean.showDataInfo();return javaBean.getConnection();}
自动注入:
在【web.xml】文件中添加,路径是【classpath:sources/database-javabean.xml】:
<!-- 加载spring配置文件 --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:sources/spring.xml,classpath:sources/database-javabean.xml</param-value> </context-param>
然后采用【@Autowired】的方式使用
@Autowiredpublic DatabaseJavaBean databaseJavaBean;
4、综上所述,数据库连接的方式如下:
package com.zuk.services;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Component;import com.zuk.database.DB;import com.zuk.database.DatabaseJavaBean;import com.zuk.database.DatabaseProperties;/** * @author 513283439@qq.com * */@Componentpublic class UserService {@Autowiredpublic DatabaseJavaBean databaseJavaBean;public final static String TAG = "com.zuk.services.UserService";public UserService(){}public void showTag(){System.out.println(TAG);}public boolean isExist(String usid1,String pawd1){//Connection conn = DB.getConnection();//Connection conn = DatabaseProperties.getConnection();//Connection conn = this.getConnection();Connection conn = this.databaseJavaBean.getConnection();//采用web.xml自动注入的方式this.db(conn);return true;}/** * 通过javabean的方式 * */private Connection getConnection(){//将其加入IOC容器中ApplicationContext context = new ClassPathXmlApplicationContext("sources/database-javabean.xml");DatabaseJavaBean javaBean = (DatabaseJavaBean) context.getBean("databaseJavaBean");javaBean.showDataInfo();return javaBean.getConnection();} //直连private void db(Connection conn){try {conn = DB.getConnection();//conn = DatabaseProperties.getConnection();String sql = "select t.usid,t.pawd,t.prnm from login t where t.usid = 'b180121'";PreparedStatement pstm = conn.prepareStatement(sql);ResultSet res = pstm.executeQuery();while(res.next()){String usid = res.getString("usid").trim();String pawd = res.getString("pawd").trim();String prnm = res.getString("prnm").trim();System.out.println(usid+"/"+prnm);}if(pstm!=null){pstm.close();}if(res!=null){res.close();}} catch (Exception e) {e.printStackTrace();}finally{try {conn.close();} catch (Exception e2) {e2.printStackTrace();}}}}
5、上面的【database-javabean.xml】文件中数据库配置的方式,可以更进一不优化,直接关联【jdbc.properties】中的数据。具体怎么操作实现呢?如下:
5.1、在【spring.xml】文件中添加;
<!-- 引入属性文件 --> <context:property-placeholder location="classpath:jdbc.properties" />
内容如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><!-- 引入属性文件 --><context:property-placeholder location="classpath:jdbc.properties" /><!-- service包(自动注入) --><context:component-scan base-package="com.zuk.services" /><!-- 扫描com.zuk.services这个包里所以的service类,【务必在类上标注:@Component】,此时可以采用@Autowired实现自动注入这个包里面全部的对象 --></beans>5.2、在【database-javabean.xml】中修改如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean id="databaseJavaBean" class="com.zuk.database.DatabaseJavaBean"><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="user" value="${user}" /><property name="password" value="${password}" /></bean></beans>
6、源代码:http://download.csdn.net/detail/qq5132834/9605733
- jee、spring、spring mvc、mybatis 学习(六)
- jee、spring、spring mvc、mybatis 学习(一)
- jee、spring、spring mvc、mybatis 学习(二)
- jee、spring、spring mvc、mybatis 学习(三)
- jee、spring、spring mvc、mybatis 学习(四)
- jee、spring、spring mvc、mybatis 学习(五)
- jee、spring、spring mvc、mybatis 学习(七)
- jee、spring、spring mvc、mybatis 学习(八)
- jee、spring、spring mvc、mybatis 学习(九)
- jee、spring、spring mvc、mybatis 学习(十)
- Spring MVC 学习总结(六)——Spring+Spring MVC+MyBatis框架集成
- Spring Boot学习(MVC-MyBatis)
- 【Spring学习笔记六】-Spring MVC框架
- SSM框架:Spring、Spring MVC、MyBatis学习
- Spring + Spring MVC + Mybatis 框架整合学习
- spring+mybatis+spring-mvc
- Spring +Spring MVC+Mybatis
- Spring+Spring MVC+MyBatis(SSM)整合
- leetcode-java-95. Unique Binary Search Trees II
- SY1371
- UITableView隐藏多余的分割线
- 2016CCPC网预总结
- 2016.08.15【初中部 NOIP提高组 】模拟赛C题解
- jee、spring、spring mvc、mybatis 学习(六)
- Ubuntu编译Hadoop源码异常总结
- Java枚举的七种常见用法
- Maven pom.xml文件引入jar包出现 missing artifact问题解决办法
- webservice服务简单说明
- LightOJ 1104
- leetcode-java-102. Binary Tree Level Order Traversal
- thinkphp 如何在两个入口文件中通过进行跳转呢?
- 我的第一篇博客