用户登陆注册【JDBC版】(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 在讲解Web开发模式的时候,曾经写过XML版的用户登陆注册案例!现在在原有的项目上,使用数据库版来完成用户的登陆注册!如果不了解的朋友,可以看看我Web开发模式的博文!本来使用的是XML文件作为小型数据库,现在使用Mysql数据库,代码究竟要改多少呢?我们拭目以待!

使用C3P0数据库连接池


导入C3P0的开发包和导入配置文件

开发包导入的是这个:c3p0-0.9.2-pre1和mchange-commons-0.2.jar.

C3P0不仅性能好,而且配置文件可以使用XML文档来配置!

类似的配置文件可以在官方文档上找得到

90.jpg

我们来改造一下:

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

   <default-config>

       <propertyname="driverClass">com.mysql.jdbc.Driver</property>

       <propertyname="jdbcUrl">jdbc:mysql://localhost:3306/zhongfucheng</property>

       <propertyname="user">root</property>

       <propertyname="password">root</property>

   

       <propertyname="acquireIncrement">5</property>

       <propertyname="initialPoolSize">10</property>

       <propertyname="minPoolSize">5</property>

       <propertyname="maxPoolSize">20</property>

   </default-config>

   

   <named-configname="mysql">

       <propertyname="driverClass">com.mysql.jdbc.Driver</property>

       <propertyname="jdbcUrl">jdbc:mysql://localhost:3306/zhongfucheng</property>

       <propertyname="user">root</property>

       <propertyname="password">root</property>

   

       <propertyname="acquireIncrement">5</property>

       <propertyname="initialPoolSize">10</property>

       <propertyname="minPoolSize">5</property>

       <propertyname="maxPoolSize">20</property>

   </named-config>

   

   

   <named-configname="oracle">

       <propertyname="driverClass">oracle.jdbc.driver.OracleDriver</property>

       <propertyname="jdbcUrl">jdbc:oracle:thin:@//localhost:1521/事例名...</property>

       <propertyname="user">用户名</property>

       <propertyname="password">密码</property>

   

       <propertyname="acquireIncrement">5</property>

       <propertyname="initialPoolSize">10</property>

       <propertyname="minPoolSize">5</property>

       <propertyname="maxPoolSize">20</property>

   </named-config>

</c3p0-config>


写获取连接的工具类


publicclassDBUtils{

   

       privatestaticComboPooledDataSourcecomboPooledDataSource=null;

   

       static{

   

           //它会自动寻找配置文件,节点为mysql的数据库【如果没有指定,就使用默认的!】

           comboPooledDataSource=newComboPooledDataSource("mysql");

       }

   


       publicstaticDataSourcegetDataSource(){

           returncomboPooledDataSource;

       }


       

       publicstaticConnectiongetConnection(){

           try{

               returncomboPooledDataSource.getConnection();

           }catch(SQLExceptione){

               e.printStackTrace();

               thrownewRuntimeException("数据库初始化失败了!");

           }

       }

   }


设计数据库表


非常简单,根据实体表来设计就好了!

CREATETABLEuser(

     id       VARCHAR(20)PRIMARYKEY,

     usernameVARCHAR(20)UNIQUENOTNULL,

     passwordVARCHAR(20)        NOTNULL,

     email    VARCHAR(20),

     birthdayDATE

   

   );


写一个操作数据库的Dao实现


publicclassUserImplDataBaseimplementsUserDao{

   

   

       @Override

       publicUserfind(Stringusername,Stringpassword){

           

           returnnull;

       }

   

       @Override

       publicvoidregister(Useruser){

   

           

       }

   }

下面我们就直接使用DBUtils框架了

  • 导入DBUtils的开发包

91.jpg

  • 具体的代码如下

@Override

   publicUserfind(Stringusername,Stringpassword){


       QueryRunnerqueryRunner=newQueryRunner(Utils2DB.getDataSource());


       Stringsql="SELECT * FROM user WHERE username=? AND password=?";


       try{

           Useruser=(User)queryRunner.query(sql,newBeanHandler(User.class),newObject[]{username,password});


           returnuser==null?null:user;

       }catch(SQLExceptione){

           e.printStackTrace();

           thrownewRuntimeException("登陆失败了!");

       }

   }


   @Override

   publicvoidregister(Useruser){


       QueryRunnerqueryRunner=newQueryRunner(Utils2DB.getDataSource());


       Stringsql="INSERT INTO user (id, username, password, email,birthday) VALUES (?,?,?,?,?);";


       Stringid=user.getId();

       Stringusername=user.getUsername();

       Stringpassword=user.getPassword();

       Stringemail=user.getEmail();


       Datedate=user.getBirthday();



       try{

           queryRunner.update(sql,newObject[]{id,username,password,email,date});


       }catch(SQLExceptione){

           e.printStackTrace();

           thrownewRuntimeException("注册失败了");

       }

   }

}



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
XML 设计模式 SQL
用户登陆注册【JDBC版】(下)
在讲解Web开发模式的时候,曾经写过XML版的用户登陆注册案例!现在在原有的项目上,使用数据库版来完成用户的登陆注册!如果不了解的朋友,可以看看我Web开发模式的博文! 本来使用的是XML文件作为小型数据库,现在使用Mysql数据库,代码究竟要改多少呢?我们拭目以待!
104 0
用户登陆注册【JDBC版】(下)
|
安全 Java 数据库连接
jdbc&nbsp;注册驱动的三种方式
jdbc&nbsp;注册驱动的三种方式
245 0
|
SQL Java 数据库连接
修改day14的登录注册案例,其中dao层为jdbc|学习笔记
快速学习修改day14的登录注册案例,其中dao层为jdbc
修改day14的登录注册案例,其中dao层为jdbc|学习笔记
|
关系型数据库 Java 数据库连接
|
Java 关系型数据库 MySQL
jdbc注册驱动 class.forName()
从源码 D:\Javasoftware\MySql\mysql\mysql-connector-java-5.1.7\src\com\mysql\jdbc\Driver.java   class.forName();   Driver.
890 0
|
3月前
|
SQL Java 关系型数据库
MySQL之JDBC(二)
MySQL之JDBC(二)
34 0
|
3月前
|
关系型数据库 MySQL Java
MySQL之JDBC(一)
MySQL之JDBC
33 0
|
6月前
|
Java 关系型数据库 MySQL
JSP居民信息采集系统yeclipse开发mysql数据库bs框架java编程jdbc
JSP 居民信息采集系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语,言开发系统主要采用B/S模式开发。
36 0