jdbc访问数据库

来源:互联网 发布:ubuntu 16.04 编辑:程序博客网 时间:2024/05/29 02:48
package com.china.bill.java.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class DbConnection {private Connection conn = null;private PreparedStatement ps = null;private ResultSet rs = null;// 连接数据库private void open() {try {// 加载驱动Class.forName("com.mysql.jdbc.Driver");// 获得连接conn = DriverManager.getConnection("jdbc:" +"mysql://localhost:3306/bill?useUnicode=true&characterEncoding=UTF-8","root","root");} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}// 执行增、删、改public int update(String sql , Object...params){int conut = 0;try {// 打开数据库连接open();// 执行sql语句,获取结果ps = conn.prepareStatement(sql);//给占位符赋值for (int i = 0 ; i < params.length ; i++) {ps.setObject(i+1, params[i]);}// 执行conut = ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{close();}return conut;}/** * 执行查询 */public ResultSet query(String sql,Object...params) {try {// 打开连接open();// 执行sql语句,获得结果集ps = conn.prepareStatement(sql);//给占位符赋值for (int i = 0; i < params.length; i++) {ps.setObject(i+1, params[i]);}// 获得结果rs = ps.executeQuery();} catch (SQLException e) {e.printStackTrace();}return rs;}// 关闭连接private void close() {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null) {try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}
package com.china.bill.java.jdbc;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.commons.codec.binary.Base64;import org.apache.commons.codec.digest.DigestUtils;import org.apache.commons.lang.RandomStringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.china.bill.java.entity.EmailAddress;import com.china.bill.java.util.PortalUtil;public class AddEmail {private static final Logger log = LoggerFactory.getLogger(AddEmail.class);private static final DbConnection dbConnection = new DbConnection();public static void main(String[] args) {/*EmailAddress emailAddress = new EmailAddress("", "");int count = addEmail(emailAddress);if (count > 0) {System.out.println("新增成功!");} else {System.out.println("新增失败!");}*/EmailAddress emailAddress = findEmilById(2);System.out.println("账号\t" + emailAddress.getEmail() + "\t密码\t" + emailAddress.getPasswd());// 解密String passwd = PortalUtil.desPasswd(emailAddress.getPasswd(), emailAddress.getKeyCode());System.out.println("密码\t" + passwd);}/** * 新增管理员邮箱 * @param emailAddress * @return */public static int addEmail(EmailAddress emailAddress) {Map map = PortalUtil.aesPasswd(emailAddress.getPasswd(), "");String passwd = null;String keyCode = null;if (map.size() == 2) {passwd = map.get("passwd");keyCode = map.get("keyCode");} else {log.debug("加密失败!");}String sql = "insert into emailaddress (email, passwd, keyCode) values (?, ?, ?)";int count = dbConnection.update(sql, emailAddress.getEmail(), passwd, keyCode);return count;}public static EmailAddress findEmilById(Integer id) {String sql = "select * from emailaddress where id = ?"; ResultSet rs =  dbConnection.query(sql, id);EmailAddress emailAddress = null;try {while (rs.next()) {emailAddress = new EmailAddress(rs.getString(2), rs.getString(3), rs.getString(4));}} catch (SQLException e) {e.printStackTrace();}return emailAddress;}}
原创粉丝点击