The man, surnamed Chen, killed himself by jumping from a building following the carnage at a school in Shiyan, in the central province of Hubei, according to the official news agency Xinhua, which said three of the victims had died.
He carried out the attack "because he couldn't enrol his child" at the school, local broadcaster Shiyan Television said on its verified account on Sina Weibo, China's version of Twitter, without giving details.
It said six children had been killed, as did a local newspaper.
A local police official declined to provide information, saying: "I am not clear, the police bureau officials are at that school investigating."
AFP