时间:2021-07-01 10:21:17 帮助过:13人阅读
//给出工厂类
- <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.dao;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.InputStream;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Properties;
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> UserDaoFactory {
- </span><span style="color: #0000ff">static</span> Properties props =<span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #0000ff">static</span> String impclassname =<span style="color: #0000ff">null</span><span style="color: #000000">;
- </span><span style="color: #0000ff">static</span><span style="color: #000000">{
- props </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> Properties();
- InputStream in </span>= UserDaoFactory.<span style="color: #0000ff">class</span>.getClassLoader().getResourceAsStream("UserDao.properties"<span style="color: #000000">);
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- props.load(in);
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException e) {
- </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
- <span style="color: #000000"> e.printStackTrace();
- }
- impclassname </span>= props.getProperty("cn.code.dao.UserDao"<span style="color: #000000">);
- }
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span><span style="color: #000000"> UserDao getUserdaoimp(){
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- Class clazz </span>=<span style="color: #000000"> Class.forName(impclassname);
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> (UserDao)clazz.newInstance();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (InstantiationException e) {
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IllegalAccessException e) {
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
- }
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (ClassNotFoundException e) {
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
- }
- }
- }</span>
//工厂类配置文件
- cn.code.dao.UserDao=cn.code.dao.UserDaoImp
//实现类
- <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.dao;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.Connection;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.PreparedStatement;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.ResultSet;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.SQLException;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.DBUtils1.DBUtils1;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.domain.User;
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> UserDaoImp <span style="color: #0000ff">implements</span><span style="color: #000000"> UserDao {
- @Override
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> add(User form) {
- Connection con </span>=<span style="color: #000000"> DBUtils1.getConnection();
- PreparedStatement ps </span>=<span style="color: #0000ff">null</span><span style="color: #000000">;
- String sql </span>= "INSERT INTO user values(?,?)"<span style="color: #000000">;
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- ps </span>=<span style="color: #000000"> con.prepareStatement(sql);
- ps.setString(</span>1<span style="color: #000000">,form.getUsername());
- ps.setString(</span>2<span style="color: #000000">,form.getPassword());
- ps.executeUpdate();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException();
- }</span><span style="color: #0000ff">finally</span><span style="color: #000000">{
- </span><span style="color: #0000ff">if</span>(ps!=<span style="color: #0000ff">null</span><span style="color: #000000">)
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- ps.close();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
- </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
- <span style="color: #000000"> e.printStackTrace();
- }
- </span><span style="color: #0000ff">if</span>(con!=<span style="color: #0000ff">null</span><span style="color: #000000">)
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- con.close();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
- </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
- <span style="color: #000000"> e.printStackTrace();
- }
- }
- }
- @Override
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> User find(String username) {
- Connection con </span>=<span style="color: #000000"> DBUtils1.getConnection();
- String sql </span>= "select * from user where username=?"<span style="color: #000000">;
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- PreparedStatement ps </span>=<span style="color: #000000"> con.prepareStatement(sql);
- ps.setString(</span>1<span style="color: #000000">,username);
- ResultSet rs </span>=<span style="color: #000000"> ps.executeQuery();
- </span><span style="color: #0000ff">if</span>(rs==<span style="color: #0000ff">null</span><span style="color: #000000">){
- </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- }
- </span><span style="color: #0000ff">if</span><span style="color: #000000">(rs.next()){
- User user </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> User();
- user.setUsername(rs.getString(</span>"username"<span style="color: #000000">));
- user.setPassword(rs.getString(</span>"password"<span style="color: #000000">));
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> user;
- }</span><span style="color: #0000ff">else</span><span style="color: #000000">{
- </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
- }
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
- }
- }
- }</span>
//service层
- <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.service;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.dao.UserDao;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.dao.UserDaoFactory;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.domain.User;
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> UserService {
- </span><span style="color: #0000ff">private</span> UserDao userDaoImp =<span style="color: #000000"> UserDaoFactory.getUserdaoimp();
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> regist(User user)<span style="color: #0000ff">throws</span><span style="color: #000000"> UserException{
- </span><span style="color: #008000">/**</span><span style="color: #008000">
- * 使用用户名去查询,如果返回null,完成添加
- * 如果返回布市null,抛出异常!
- * </span><span style="color: #008000">*/</span><span style="color: #000000">
- User u </span>=<span style="color: #000000"> userDaoImp.find(user.getUsername());
- </span><span style="color: #0000ff">if</span>(u!=<span style="color: #0000ff">null</span>)<span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("用户名"+user.getUsername()+"已经被注册!"<span style="color: #000000">);
- userDaoImp.add(user);
- }
- </span><span style="color: #0000ff">public</span> User login(User user) <span style="color: #0000ff">throws</span><span style="color: #000000"> UserException {
- User u </span>=<span style="color: #000000"> userDaoImp.find(user.getUsername());
- </span><span style="color: #0000ff">if</span>(u==<span style="color: #0000ff">null</span>)<span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("用户名不存在!"<span style="color: #000000">);
- </span><span style="color: #0000ff">if</span>(!<span style="color: #000000">u.getPassword().equals(user.getPassword())){
- </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("密码错误"<span style="color: #000000">);
- }
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> u;
- }
- }</span>
//domain层
- <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.domain;
- </span><span style="color: #008000">/*</span><span style="color: #008000">
- * 实体类
- * </span><span style="color: #008000">*/</span>
- <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> User {
- </span><span style="color: #0000ff">private</span><span style="color: #000000"> String username;
- </span><span style="color: #0000ff">private</span><span style="color: #000000"> String password;
- </span><span style="color: #0000ff">private</span><span style="color: #000000"> String verifyCode;
- @Override
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> String toString() {
- </span><span style="color: #0000ff">return</span> "User [username=" + username + ", password=" +<span style="color: #000000"> password
- </span>+ ", verifyCode=" + verifyCode + "]"<span style="color: #000000">;
- }
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> User(String username, String password, String verifyCode) {
- </span><span style="color: #0000ff">super</span><span style="color: #000000">();
- </span><span style="color: #0000ff">this</span>.username =<span style="color: #000000"> username;
- </span><span style="color: #0000ff">this</span>.password =<span style="color: #000000"> password;
- </span><span style="color: #0000ff">this</span>.verifyCode =<span style="color: #000000"> verifyCode;
- }
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getUsername() {
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> username;
- }
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setUsername(String username) {
- </span><span style="color: #0000ff">this</span>.username =<span style="color: #000000"> username;
- }
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getPassword() {
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> password;
- }
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setPassword(String password) {
- </span><span style="color: #0000ff">this</span>.password =<span style="color: #000000"> password;
- }
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getVerifyCode() {
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> verifyCode;
- }
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setVerifyCode(String verifyCode) {
- </span><span style="color: #0000ff">this</span>.verifyCode =<span style="color: #000000"> verifyCode;
- }
- </span><span style="color: #0000ff">public</span><span style="color: #000000"> User() {
- }
- }</span>
JDBC面向接口编程
标签:this als form 完成 input resource exception ati find