java项目连接mysql数据库的jdbc遇到的问题

最近在写java项目的时候想要往数据库里存点东西,于是就用mysql数据库来存数据,可我在使用过程中遇到了两个问题,现做个笔记,问题如下:

一、报com.mysql.jdbc.Driver类未找到

        之所以报这个错,不是因为没有导入mysql驱动包,而是我导的包(后缀名是zip)有问题,于是我换了个包(后缀名是jar)就OK啦!

二、当我存储中文数据时,数据库显示??

       这个问题网上有很多的答案,我是按其中的一种就ok啦,主要的一句话是在URL中加入:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8

代码如下:

public class MySqlUtil {
	private static Connection getConn() {
	    String driver = "com.mysql.jdbc.Driver";
	    String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8";
	    String username = "root";
	    String password = "123";
	    Connection conn = null;
	    try {
	        Class.forName(driver); //classLoader,加载对应驱动
	        conn = (Connection) DriverManager.getConnection(url, username, password);
	    } catch (ClassNotFoundException e) {
	        e.printStackTrace();
	    } catch (SQLException e) {
	        e.printStackTrace();
	    }
	    return conn;
	}
	public static void connectTest(){
		Connection conn=getConn();
		if(conn!=null){
			MyLog.println("数据库连接测试成功");
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}else{
			MyLog.println("数据库连接测试失败");
		}
	}
	public static int insert(String tabelName,Map<String,Object> map) {
		if(map==null || map.size()==0){
			return 0;
		}
		StringBuffer n=new StringBuffer();
		StringBuffer v=new StringBuffer();
		Iterator<String> iter= map.keySet().iterator();
		while(iter.hasNext()){
			String key=iter.next();
			n.append(key+",");
			if(map.get(key) instanceof String){
				v.append("'"+map.get(key)+"',");
			}else{
				v.append(map.get(key)+",");
			}
		}
	    Connection conn = getConn();
	    int i = 0;
	    String sql = "insert into "+tabelName+" ("+n.substring(0, n.length()-1)
	    		+") values("+v.substring(0, v.length()-1)+")";
	    MyLog.println(sql);
	    PreparedStatement pstmt;
	    try {
	        pstmt = (PreparedStatement) conn.prepareStatement(sql);
	        i = pstmt.executeUpdate();
	        pstmt.close();
	        conn.close();
	    } catch (SQLException e) {
	        e.printStackTrace();
	    }
	    return i;
	}
	public static void executeSQL(String sql){
		 Connection conn = getConn();
		 PreparedStatement pstmt;
		 try {
		        pstmt = (PreparedStatement) conn.prepareStatement(sql);
		        pstmt.executeUpdate();
		        pstmt.close();
		        conn.close();
		    } catch (SQLException e) {
		        e.printStackTrace();
		    }
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值