jdbc 连接mysql乱码问题

使用MySQL时候经常会出现乱码问题,必须得声明编码格式,我刚刚在编写的时候就因为编码问题而导致其他地方查询的时候查不出结果,而我在后台使用命令可以查出来,起初是以为jdbc函数写错了,其中的查询语句不对。后来发现当数据库中的数据改为英文的时候不出现问题,改为中文的时候就查询不出错误了,于是确定是编码的问题。浪费了好长的时间。


下面附上使用jdbc连接mysql的函数:

<pre name="code" class="java">public class DBConnection {

	private static Connection conn;
	
	public static Connection getConnection() throws ClassNotFoundException, SQLException
	{
		if(conn != null)
		{
			System.out.println(conn);
			return conn;
		}
		
		String username = "root";   //用户名
		String password = "123456";  //密码
		String ip = "127.0.0.1";   //数据库ip地址
		String port = "3306";      //端口,一般不需要改
		String dbname = "struts2";   //数据库名字,根据具体的改
		
		String driver = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://" + ip + ":" + port + "/" + dbname+
						"?useUnicode=true&characterEncoding=UTF-8";

		try{
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
		}catch(Exception e)
		{
			System.out.println(e);
		}finally{
			
		}
		return conn;
	}
}


 
 
注意其中的一句:

<pre name="code" class="java">String url = "jdbc:mysql://" + ip + ":" + port + "/" + dbname+
						"?useUnicode=true&characterEncoding=UTF-8";


 后面的useUnicode等等 
 就是申明所使用的编码方式,如果不加就会出现乱码问题。 
 


以后连接的时候直接调用这个函数的getConnection方法就可以了,省去了好多重复的代码。当然其中还可以在里面加一个close函数,也是直接调用就可以关闭与数据库各个资源的连接关系了,这里没有写出来,自己写一下咯。

你可能感兴趣的:(数据库,mysql,jdbc,编码,乱码)