下载oracle驱动包:ojdbc6.jar,放于以下位置:
测试代码:javascript
package com.test; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; public class Test01 { @Test public void test() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = null; //orcl 是数据库名;test123是用户名;qwer1234是密码 conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl", "test123", "qwer1234"); } catch (Exception e) { e.printStackTrace(); } } }
运行成功就算链接成功了,以后就能够操做数据库了。
参考地址:https://blog.csdn.net/he__xu/article/details/83410966
jar包下载连接:https://pan.baidu.com/s/1j2lV7uJWsgmW0yym9j8jHw 提取码:0mqkhtml
commons-dbcp jar包:
下载地址:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
连接:https://pan.baidu.com/s/1BsbXz1FG4FQi4-ZSIWnYhQ 提取码:d3uo
commons-pool jar包:
下载地址:http://commons.apache.org/proper/commons-pool/download_pool.cgi
连接:https://pan.baidu.com/s/1LTK2WQ1CIsIglYqVZBr6ig 提取码:38v8
连接:https://pan.baidu.com/s/1O6cI7FOtlMYyzzYDX4phcQ 提取码:b3snjava
<!--配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="test123"/> <property name="password" value="qwer1234"/> <!-- 链接池启动时的初始值 --> <property name="initialSize" value="3" /> <!-- 链接池的最大值 --> <property name="maxActive" value="300" /> <!-- 最大空闲值.当通过一个高峰时间后,链接池能够慢慢将已经用不到的链接慢慢释放一部分,一直减小到maxIdle为止 --> <property name="maxIdle" value="2" /> <!-- 最小空闲值.当空闲的链接数少于阀值时,链接池就会预申请去一些链接,以避免洪峰来时来不及申请 --> <property name="minIdle" value="1" /> <!-- end --> </bean>
@Test public void test() { ApplicationContext ctx = new ClassPathXmlApplicationContext( "resource/applicationContext.xml"); }
备注:若是有如下报错:
警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Failed to introspect bean class [org.apache.commons.dbcp.BasicDataSource] for lookup method metadata: could not find class that it depends on; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/ObjectPool
能够把commons-pool2-2.4.3.jar须要换成commons-pool-1.6.jarweb
代码:spring
public void test() { ApplicationContext ctx = new ClassPathXmlApplicationContext("resource/applicationContext.xml"); BasicDataSource dataSource = (BasicDataSource) ctx.getBean("dataSource"); }
解决:在aop后面添加一个属性:proxy-target-class="true"
测试经过后直接试着调用一下
代码:sql
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ApplicationContext ctx = new ClassPathXmlApplicationContext("resource/applicationContext.xml"); BasicDataSource dataSource = (BasicDataSource) ctx.getBean("dataSource"); String msg = ""; Statement st = null; ResultSet rs = null; try { // 一、获取链接对象 Connection conn = dataSource.getConnection(); // 二、建立statement类对象,用来执行SQL语句!! st = conn.createStatement(); // 三、建立sql查询语句 String sql = "select * from sys_user "; // 四、执行sql语句而且换回一个查询的结果集 rs = st.executeQuery(sql); while (rs.next()) { // 循环遍历结果集 int id = rs.getInt("user_id"); String name = rs.getString("real_name"); msg += "id=" + id + "--" + "name=" + name+"<br>"; } } catch (SQLException e) { e.printStackTrace(); } response.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>一二零叁的网站</title></head><body>"); out.print(msg); out.print("</body></html>"); }
其中用户表:
结果:
数据库
jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl jdbc.username=test123 jdbc.password=qwer1234
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:resource/jdbc.properties</value> </list> </property> </bean> <!--配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- 链接池启动时的初始值 --> <property name="initialSize" value="3" /> <!-- 链接池的最大值 --> <property name="maxActive" value="300" /> <!-- 最大空闲值.当通过一个高峰时间后,链接池能够慢慢将已经用不到的链接慢慢释放一部分,一直减小到maxIdle为止 --> <property name="maxIdle" value="2" /> <!-- 最小空闲值.当空闲的链接数少于阀值时,链接池就会预申请去一些链接,以避免洪峰来时来不及申请 --> <property name="minIdle" value="1" /> <!-- end --> </bean>
这样就能够了。apache
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>一二零叁的网站</title> <script type="text/javascript"> function zhuce(){ alert("跳转到注册界面......"); } </script> </head> <body> <center> <h1 style="color:#7D26CD">登陆</h1> <hr style="width:85%"> <form id="indexform" name="indexForm" action="logincheck.jsp" method="post"> <table border="0"> <tr> <td>帐号:</td> <td colspan="2"><input type="text" name="username"> </td> </tr> <tr> <td>密码:</td> <td colspan="2"><input type="password" name="password"> </td> </tr> <tr> <td colspan="3" align="center"> <br> <input type="submit" value="登陆" style="color:#BC8F8F"> <input type="button" onclick="zhuce()" value="注册" style="color:#BC8F8F"> </td> </tr> </table> </form> </center> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="java.lang.*"%> <%@ page import="com.service.Login"%> <%@ page import="net.sf.json.JSONObject"%> <% try { request.setCharacterEncoding("UTF-8"); String username = (String) request.getParameter("username"); String password = (String) request.getParameter("password");//取出login.jsp的值 Login login = new Login(); JSONObject loginResult = login.checkLogin(username, password); if (1 == loginResult.getInt("status")) { response.sendRedirect("../IndexServlet"); } else { out.print("<script language='javaScript'> alert('" + loginResult.getString("msg") + "');</script>"); response.setHeader("refresh", "0;url=login.jsp"); } } catch (Exception e) { e.printStackTrace(); } %>
package com.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import net.sf.json.JSONObject; import org.apache.commons.dbcp.BasicDataSource; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Login { public JSONObject checkLogin(String username,String password){ JSONObject result = new JSONObject(); ApplicationContext ctx = new ClassPathXmlApplicationContext("resource/applicationContext.xml"); BasicDataSource dataSource = (BasicDataSource) ctx.getBean("dataSource"); PreparedStatement ps =null; try { // 一、获取链接对象 Connection conn = dataSource.getConnection(); // 二、建立statement类对象,用来执行SQL语句!! ps = conn.prepareStatement("select password,enabled from sys_user where user_name = ? "); // 三、建立sql查询语句 ps.setString(1, username); // 四、执行sql语句而且换回一个查询的结果集 ResultSet rs = ps.executeQuery(); if (rs.next()) { // 有查询结果 if(!password.equals(rs.getString("password"))){ result.put("status", "3"); result.put("msg", "密码错误"); } else if(1!=rs.getInt("enabled")){ result.put("status", "4"); result.put("msg", "改帐号不容许登陆"); } else { result.put("status", "1"); result.put("msg", "容许登陆"); } } else { result.put("status", "2"); result.put("msg", "不存在该帐号"); } } catch (SQLException e) { e.printStackTrace(); } return result; } }
登陆界面:
登陆失败:
登陆成功:
json